컴퓨터 속 이야기/React

[오류] 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 가 되는 것! 따라서 해당 문제가 발생하는 것!!!

 

반응형