• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 URL 상세 페이지 만들기 질문입니다

URL 상세 페이지 만들기 질문입니다

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #6559

    김성렬
    참가자

    TypeError: Cannot read property 'title' of undefined
    Detail
    C:/Users/Desktop/mall/shop/src/Detail.js:16
    13 | <img src="https://codingapple1.github.io/shop/shoes1.jpg" width="100%" />
    14 | </div>
    15 | <div className="col-md-6 mt-4">
    > 16 | <h4 className="pt-5">{props.shoes[id].title}</h4>
    | ^ 17 | <p>{props.shoes[id].content}</p>
    18 | <p>{props.shoes[id].price}</p>
    19 | <button className="btn btn-danger">주문하기</button>

    이러한 오류가 납니다

    useParams를 import하고 id에 집어넣어서 사용하였는데

    {props.shoes[id].title}

    {props.shoes[id].content}

    {props.shoes[id].price}

    그럼에도 위 부분에서 에러가 나는 듯 합니다

    오랜 시간 이것 저것 만져보았지만 해결이 나지 않아 질문 드립니다

    #6560

    김성렬
    참가자

    import React from 'react';
    import { useHistory, useParams } from 'react-router-dom';

    function Detail(props){

        let history = useHistory();
        let { id } = useParams();

        return(
            <div className="container">
                <div className="row">
                    <div className="col-md-6">
                        <img src="https://codingapple1.github.io/shop/shoes1.jpg" width="100%" />
                    </div>
                <div className="col-md-6 mt-4">
                    <h4 className="pt-5">{props.shoes[id].title}</h4>
                    <p>{props.shoes[id].content}</p>
                    <p>{props.shoes[id].price}</p>
                    <button className="btn btn-danger">주문하기</button> 
                    <button onClick={ ()=>{ history.goBack() }} className="btn btn-danger">뒤로가기</button>
                    <button onClick={()=>{ history.push('/') }} className="btn btn-danger">뒤로가기</button>
                </div>
                </div>
            </div>
        )
    }

    export default Detail

     

    소스입니다

    #6563

    codingapple
    키 마스터

    1. 일단 Detail안에서 props.shoes가 잘 출력되는지 확인합니다 아마 array가 출력이되어할 것 같은데 안되면 props전송을 잘못한 것입니다 

    2. id라는 변수가 잘 출력되는지 확인합니다. 0 1 2 이렇게 출력이 잘 안되면 파라미터가 이상한 것입니다 

    3. 브라우저에서 url을 /detail/0 이렇게 잘 접속했는지 확인합니다

    #6566

    김성렬
    참가자

    답변 감사합니다
    2번에서 잘못된 것 같습니다
    주소창에 /detail/123 하고 id 값을 출력해보았는데 아무것도 나오지 않네요
    파라미터라면 어느 부분의 파라미터를 말씀 하시는 건가요?

    #6568

    김성렬
    참가자

    아 해결되었습니다 App.js에 잘못된 라우트 태그가 있었습니다

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠