TypeError: Cannot read property 'map' of undefined
932
작성한 질문수 5
import React from "react";
import "./index.css";
import axios from "axios";
function MainPage() {
const [products, setProducts] = React.useState([]);
React.useEffect(function () {
axios
.get(
"https://d1a1b399-04d4-44bf-a91a-12823e4dfcec.mock.pstmn.io/products"
)
.then(function (result) {
const products = result.data.products;
setProducts(products);
})
.catch(function (error) {
console.error("에러 발생 : ", error);
});
}, []);
return (
<div>
<div id="header">
<div id="header-area">
<img src="images/icons/logo.png" />
</div>
</div>
<div id="body">
<div id="banner">
<img src="images/banners/banner1.png" />
</div>
<h1>판매되는 상품들</h1>
<div id="product-list">
{products.map(function (product, index) {
return (
<div className="product-card">
<div>
<img className="product-img" src={product.imageUrl} />
</div>
<div className="product-contents">
<span className="product-name">{product.name}</span>
<span className="product-price">{product.price}원</span>
<div className="product-seller">
<img
className="product-avatar"
src="images/icons/avatar.png"
/>
<span>{product.seller}</span>
</div>
</div>
</div>
);
})}
</div>
</div>
<div id="footer"></div>
</div>
);
}
export default MainPage;
이렇게 코드를 작성하였을 때, localhost:3000 페이지에
접속하면 위 제목 같은 오류가 나옵니다ㅠ
오타가 없는 지 몇 번이고 확인했지만 오타는 없었어요ㅠ
답변 7
3
axios의 then 안에 있는 구문을 바꿔주시면 될 것 같아요!
.then(function (result) {
const products = result.data.product;
setProducts(products);
})
3
지금 보시면 data 객체에 products를 key 하는 array가 들어있는데, 작성자님께서 짠 코드는 product로 접근하는 코드를 작성하신 것 같습니다!
포스트맨에 example쪽을 수정해주거나 코드를 data.products로 바꾸면 될 것 같아요
2
products.map(function (product, index)를 products.map(function (product, index) => 이렇게 바꿔보시면 될것 같네요?
1
해당 코드로 수정하고 구글 콘솔창을 열어본 결과
data : {
"product" : [
{
"name": "농구공",
"price": 100000,
"seller": "조던",
"imageUrl": "images/products/basketball1.jpeg",
},
{
"name": "축구공",
"price": 50000,
"seller": "메시",
"imageUrl": "images/products/soccerball1.jpg",
},
{
"name": "키보드",
"price": 10000,
"seller": "그랩",
"imageUrl": "images/products/keyboard1.jpg",
}
]
}
index.js:17 products : undefined
index.js:39 Uncaught TypeError: Cannot read property 'map' of undefined
at MainPage (index.js:39)
at renderWithHooks (react-dom.development.js:14985)
at updateFunctionComponent (react-dom.development.js:17356)
at beginWork (react-dom.development.js:19063)
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:646)
at runWithPriority$1 (react-dom.development.js:11276)
at flushSyncCallbackQueueImpl (react-dom.development.js:11322)
at flushSyncCallbackQueue (react-dom.development.js:11309)
at scheduleUpdateOnFiber (react-dom.development.js:21893)
at dispatchAction (react-dom.development.js:16139)
at index.js:19
index.js:1 The above error occurred in the <MainPage> component:
at MainPage (http://localhost:3000/static/js/main.chunk.js:627:80)
at App
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.
console.<computed> @ index.js:1
index.js:1 에러 발생 : TypeError: Cannot read property 'map' of undefined
at MainPage (index.js:39)
at renderWithHooks (react-dom.development.js:14985)
at updateFunctionComponent (react-dom.development.js:17356)
at beginWork (react-dom.development.js:19063)
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:646)
at runWithPriority$1 (react-dom.development.js:11276)
at flushSyncCallbackQueueImpl (react-dom.development.js:11322)
at flushSyncCallbackQueue (react-dom.development.js:11309)
at scheduleUpdateOnFiber (react-dom.development.js:21893)
at dispatchAction (react-dom.development.js:16139)
at index.js:19
이렇게 찍힙니다.
1
안녕하세요! 현재 products state에 값이 제대로 안들어가는 것으로 보입니다.
네트워크 통신이 제대로 안되는 것으로 추측이 가네요.
axios.then 부분에 products를 가져오는 부분에 Log를 찍어서 값이 제대로 들어오는지 확인해주실 수 있을까요?
크롬 개발자도구에서 로그를 확인해보시면 답이 나올 것 같아요.
console.log('data : ',result.data)
const products = result.data.products;
console.log('products : ',products)
setProducts(products);
[해결]그랩님 답변 주세요.
0
160
2
그랩님의 답변을 기다립니다/102강 전반적인 에러
0
140
2
[그랩님께]101강 안드로이드 에러들(Key prop)해결방법 궁금합니다.
0
122
2
[재질문][그랩님 답변 부탁드립니다]101강
0
135
2
[그랩님 답변 부탁드립니다]101강 Axios 에러와 502 Bad Gateway 질문
0
96
2
Ngrok 설치 후 forwarding Url 에러
0
129
2
[그랩님께,Ngrok 악성코드 인식 해결방법]질문 드립니다.
0
215
2
Ngrok 설치 후 forwarding Url로 연결 불가
0
133
1
그랩님,[꼭] 답변 부탁드립니다.
0
64
1
[꼭][[꼭] 그랩님, 답변 부탁드립니다], Failed to load resource: the server responded with a status of 404 (Not Found) 상품 상세 페이지 질문입니다.
0
148
1
6강/7강 수업
0
49
1
그랩님, 상품 상세 페이지 에러와 의문점 질문드립니다.
0
98
2
그랩님, 해결되지 않은 에러 메시지 [꼭] 답변 부탁 드립니다.
0
133
2
[재 질문]Cannot read properties of undefined (reading 'map') TypeError: Cannot read properties of undefined (reading 'map') 에러 해결 어떻게 하나요?
0
88
1
Cannot read properties of undefined (reading 'map') TypeError: Cannot read properties of undefined (reading 'map') 에러 해결 어떻게 하나요?
0
126
2
일반적인 css 꾸미기에서 width와 height의 값?
0
87
2
Windows에서의 업로드 후 홈화면 상품이미지 오류 해결방법
0
191
1
그랩마켓 웹화면 구현하기 -2 질문입니다.
0
118
1
react에 반영이 되지 않습니다.
0
234
1
터미널 npm install -g create-react-app 작성 후 오류
0
418
1
create-react-app my app 실행 시 에러
0
351
2
포스트맨 질문
0
97
1
<꼭 답변 부탁 드립니다>그랩선생님, [컴포넌트 사용하기] 강의에서 질문 있습니다.
0
258
2
그랩선생님, 질문 답변 부탁 드립니다.vscode에서 npm install -g create-react-app 입력 후 에러 입니다.
0
472
2





