인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

TK님의 프로필 이미지
TK

작성한 질문수

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

상품 상세 페이지 구현 - 2

상세보기를 누르면 널값이라고 계속나옵니다

작성

·

245

1

별짓다해봤는데 뭐가 문제인지 잘모르겠습니다 ..

한번 확인부탁드립니다!

product index.js

import { useParams } from "react-router-dom";
import axios from "axios";
import { useEffect, useState } from "react";

function ProductPage() {
  const { id } = useParams();
  const [product, setProduct] = useState(null);
  useEffect(function () {
    axios
      .get(
        `https://3fdc9398-b155-42b8-9304-e33318eb3d55.mock.pstmn.io/products/ + ${id}`
      )
      .then(function (result) {
        setProduct(result.data);
        console.log(result);
      })
      .catch(function (error) {
        console.error(error);
      });
  }, []);

  return (
    <div>
      <div id="image-box">
        <img src={"/" + product.imageUrl} />
      </div>
      <div id="profile-box">
        <img src="/images/icons/avatar.png" />
        <span>{product.seller}</span>
      </div>
      <div id="contents-box">
        <div id="name ">{product.name}</div>
        <div id="price">{product.price}</div>
        <div id="description">{product.description}</div>
      </div>
    </div>
  );
}

export default ProductPage;
 
 
 
 
 
index.js:25 Uncaught TypeError: Cannot read properties of null (reading 'imageUrl') at ProductPage (index.js:25) at renderWithHooks (react-dom.development.js:14985) at mountIndeterminateComponent (react-dom.development.js:17811) at beginWork (react-dom.development.js:19049) at HTMLUnknownElement.callCallback (react-dom.development.js:3945) at Object.invokeGuardedCallbackDev (react-dom.development.js:3994) at invokeGuardedCallback (react-dom.development.js:4056) at beginWork$1 (react-dom.development.js:23964) at performUnitOfWork (react-dom.development.js:22776) at workLoopSync (react-dom.development.js:22707) at renderRootSync (react-dom.development.js:22670) at performSyncWorkOnRoot (react-dom.development.js:22293) at react-dom.development.js:11327 at unstable_runWithPriority (scheduler.development.js:468) at runWithPriority$1 (react-dom.development.js:11276) at flushSyncCallbackQueueImpl (react-dom.development.js:11322) at flushSyncCallbackQueue (react-dom.development.js:11309) at discreteUpdates$1 (react-dom.development.js:22420) at discreteUpdates (react-dom.development.js:3756) at dispatchDiscreteEvent (react-dom.development.js:5889)

답변 1

1

그랩님의 프로필 이미지
그랩
지식공유자

상품 페이지에 들어갔을 때 product state가 null로 들어가있기에 있는 이슈입니다.

상품 페이지에서 개발자도구 console 창을 켜서 제대로 api 서버와 네트워크 통신이 되었는지 확인해주세요 :)

TK님의 프로필 이미지
TK

작성한 질문수

질문하기