TypeError:Cannot read properties of undefined(reading 'username') 에러

드디어 일주일만에 해결한..!!

별거 아니라면 별 거 아닌 에러 해결이지만 초보자 입장에선 정말 알 수 없는 것이었다.
벨로퍼트님의 리액트를 다루는 기술을 보며 따라 하는데 분명 백엔드쪽 프론트엔드쪽 모두 오타 없이 잘 진행했고 react-router-dom v6로 업뎃 하면서 작동하지 않는 withRouter와 location.search를 대체할만한 애들을 잘 데려와서 사용했다 생각했는데 진짜 안돼도 너무 안 되던 것이었다.

끝없이 나를 의심하며 오타를 찾아보고 대체 소스들이 잘못 된건가 의심하던 어느날 username이 없는 포스트가 있지 않냐는 힌트를 받았다. 하지만 당시에 백엔드쪽 공부를 할때 createFakeData로 연습했던 파일은 지워서 그 문제가 아니라고 생각했다.
그런데 그것이 문제였다. 이미 쌓여있던 데이터들은 파일을 지운다고 해결되는 것이 아니었다.
아는 지인 개발자가 이렇게 말했다. 우리에겐 console형님이 계시다고..
의심이 가는 부분에 미친듯이 콘솔을 찍어 보았는데.. 역시 콘솔형님... 답을 알려주셨다.
분명 지웠다고 생각했던 나의 이전 연습기록이 그대로 콘솔에 짜란 하고 나오는 게 아닌가.. 진짜 이게 저 에러를 만들었나??? 라는 생각과 함께
MongoDB Compass Beta에 들어가 기존에 blog/posts 폴더를 삭제하니 언제 그랬냐는듯 에러는 짜란~ 하고 사라져 버리고

<Link to={`/@${user.username}/${_id}`}>{title}</Link>

이걸 잘 인식하여 아름다운 결과를 가져다 주었다.

결론은 읽고자 하는 데이터가 null의 상태일 때 Cannot read properties of undefined(reading 'username') 읽을 수 없다는 에러를 보여준다는 것을 알게 되었다!

승부욕 하나로 버틴 이 게임 정말 재미졌다.. ㅋㅋ

좋은 웹페이지 즐겨찾기