Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 이미지 포맷 변경
- certbot
- CI
- workflow
- 자동화
- TLS
- tcp
- SSH
- pm2
- SSL
- nextJS
- 성능 개선
- 브라우저
- 로드 밸런싱
- ec2
- webp
- 리버스 프록시
- gitgub actions
- 렌더링 과정
- aws
- DNS
- 인증서
- 무중단
- 이미지 최적화
- 검색엔진최적화
- 배포
- 이미지 압축
- 3-Way HandShake
- nginx
- https
Archives
- Today
- Total
개발일기
Uncaught TypeError: Cannot read properties of null (reading 'map') 본문
전에 해결했는데 까먹어서 다시 찾아본 오류,,
app.jsx 코드
const [todos, setTodos] = useState(null);
const fetchTodos = async () => {
const { data } = await axios.get("http://localhost:4000/todos");
setTodos(data);
};
<div>
{todos.map((item) => {
return (
<div key={item.id}>
{item.id}:{item.title}
</div>
);
})}
</div>
db.json 코드
{
"todos": [
{
"title": "데이터1",
"id": 1
},
{
"title": "데이터2",
"id": 2
}
]
}
json-server를 사용해서 db에 있는 데이터를 가져와서 화면에 뿌려줄려고 했는데 오류 발생
Uncaught TypeError: Cannot read properties of null (reading 'map')
처음에 useState값이 null인지 모르고 시간 낭비하다가 발견하고, null을 [](배열)로 변경하니까 실행 완료,,
const [todos, setTodos] = useState([]);
헤매고 있을 때 구글에 검색해본 해결 방법 2가지
1.&& 사용
const [todos, setTodos] = useState(null);
const fetchTodos = async () => {
const { data } = await axios.get("http://localhost:4000/todos");
setTodos(data);
};
<div>
{todos && todos.map((item) => {
return (
<div key={item.id}>
{item.id}:{item.title}
</div>
);
})}
</div>
db.json 코드
-JavaScript에서 true && expression은 항상 expression으로 실행되고 false && expression은 항상 false로 실행된다. 따라서 조건이 참이면 && 바로 뒤의 요소가 출력에 나타난다. 거짓이면 React는 무시하고 건너뛴다.
2.옵셔널 체이닝(?.)
const [todos, setTodos] = useState(null);
const fetchTodos = async () => {
const { data } = await axios.get("http://localhost:4000/todos");
setTodos(data);
};
<div>
{todos?.map((item) => {
return (
<div key={item.id}>
{item.id}:{item.title}
</div>
);
})}
</div>
-?. 연산자의 왼쪽에 있는 것을 평가한뒤 undefined 또는 null이 맞다면 undefined를 반환하고 평가 끝남. 만약 아니라면 계속해서 평가가 이루어진다.
-&&연산자를 사용하면 코드가 길어질 수 있기 때문에 나옴
'TIL' 카테고리의 다른 글
타입스크립트(typeScript) 기초 (0) | 2023.07.25 |
---|---|
redux를 사용하여 버튼 클릭시 숫자가 +,- 되는 앱 만들기 (0) | 2023.07.14 |
javascript 배우기(3) (0) | 2023.05.24 |
Javascript문법 배우기(2) (0) | 2023.05.23 |
Javascript 문법 배우기(1) (0) | 2023.05.22 |