[오류] TypeError: Cannot read property 'user' of undefined
[ 문제 해결을 위한 나의 솔루션 ]
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 가 되는 것! 따라서 해당 문제가 발생하는 것!!!