일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- eclipse
- 손쉬운 사용 키보드
- 손쉬운사용키보드
- scroll
- Ubuntu에 Docker
- MariaDB
- srollIntoView
- Linux
- frontend
- EACCES
- 설치
- javascript
- MAC
- Ubuntuos
- Spring
- JS
- remotessh
- apache
- vscode
- 사용자화면
- 백수일지
- WINDOWS10
- java
- reactjs
- 프론트엔드
- 자바스크립트
- React
- error
- 리눅스
- 오류
- Today
- Total
평범한 이야기
[오류] TypeError: Cannot read property 'user' of undefined 본문
[오류] TypeError: Cannot read property 'user' of undefined
SophyBliss 2021. 12. 30. 15:57
[ 문제 해결을 위한 나의 솔루션 ]
1. user 가 정의 되어있지 않다고 생각하여 reducers 를 import 를 해보았으나, 해결되지 않음.
2. useSelector 가 작동을 잘못하는 것인지 해당 값을 받는 isLoggedIn 변수가 문제가 있는 것인지 생각하다가 오타가 있는지 확인 함.
그러나 해결되지 않음.
3. reducer 쪽에 정의되어있는 initialState 의 값을 확인하여 혹시 return {} 으로 감싸지 않아서 그런가? 하고 return 을 작성해봄;
그러나 오히려 retun 이 오류를 발생시킴. 해결되지 않음.
[ 문제 해결 ]
reducer 가 정의 된 곳인 switch 문에 문제가 있는지 확인.
case 문에 default 가 빠진 것을 보고 추가 해봄. 해결됨.
[ 느낀점 ]
user undefined 라고 하기에 import 쪽 문제인지 오타인지하여 reducer 쪽까지 함께 살펴봤으나 case 문의 default라고는 생각하지 못했다. 마침 강의를 듣고 있는 곳의 커뮤니티를 살펴보면서 나와 동일한 오류로 문의한 분의 글을 살폈고, 그 곳에서 reducer 쪽의 문제일 수 있단는 글을 본 뒤 힌트를 얻어 범위를 좁혔고, switch 문의 구성을 보니 default 구문이 빠졌기에 이를 혹시 몰라 작성해봄. 단번에 해결됨!
보여지는 오류만 생각하다보니 넓게 생각하지 못하고 한 곳에 국한되어 생각하느라 해결하는데에 좀 시간이 소요되었지만, 연관된 흐름을 찾아가되 좀 더 넓게 생각하는 자세를 가져야겠다.
[ 추가 ]
이후 다음 강의에서 해당 내용에 대해 언급을 해주셨다.
state값을 초기화 할 때도 switch 구문이 실행이 되는데, 이 때 아무런 action이 없이 진행될 경우 default 구문으로 return 을 받아야한다. 그러나 default 구문이 정의 되어있지 않으면 return 이 undefined 가 되는 것! 따라서 해당 문제가 발생하는 것!!!
'컴퓨터 속 이야기 > React' 카테고리의 다른 글
Module not found: Can't resolve 'APP' in (0) | 2022.04.22 |
---|---|
rename 오류 - errono: -13 / code: 'EACCES' (0) | 2022.04.22 |