• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

mutation에서 unshift 관련 에러가 나는데 어떤 문제일까요?

22.06.05 15:13 작성 조회수 274

0

관련해서 검색해보며 찾아봤는데 도저히 짐작가는 곳이 없어서 여쭤보게되었습니다. 

강사님의 github코드 보면서 오타 확인도 했는데 제가 임의로 timeStamp라고 쓴 변수를 제외하고는 똑같은 걸 확인했습니다ㅠㅠ

캡쳐를 보면 resolver/message에서 30:19번째가 문제라고 나오는데 여기가 unshift를 사용한 곳입니다. 혹시나 해서 push 를 사용해봤는데 역시 같은 문제가 있었습니다. 

그래서 messages에 옵셔널 체이닝으로 messages?.unshift를 사용했을 때 createMessage는 실행이 되지만 db에 변경되지는 않는 것을 확인했습니다. 

추가적으로 어떤 부분을 확인하면 좋을까요?

 

답변 1

답변을 작성해보세요.

1

(제가 당분간 컴퓨터를 접할 수 없는 사정이 있어 정확한 답변을 드리기 어려운 점 양해 부탁드려요)

에러메시지는 "cannot find property 'unshift' of undefined" 라고 나오네요ㅡ 이 문장을 해석해보면, 객체(배열)이라고 예상하고 접근한 db.messages가 실제로는 undefined여서 unshift 프로퍼티에 접근하지 못한다는 뜻입니다. 그말인즉 db.messages가 정의되어 있지 않다는 말이고요.

이 정보로부터 문제를 찾아보셔야 해요. 일단 unshift 명령을 내리는 근처(바로 위)에서 db.messages를 출력해보고, undefined라면 왜 undefined가 나오는지, db도 출력해보고, 혹시 오타는 없는지 등등을 이 기준으로 찾아나가다 보면 문제를 해결하실 수 있으리라 생각합니다.

suyeon.DV님의 프로필

suyeon.DV

질문자

2022.06.05

헉 휴일임에도 이렇게나 빨리 답변주셔서 감사합니다. 말씀해주신 부분들로 어떤부분을 찾아봐야하는지 좀 더 감이 잡히네요. 꼭 찾아내겠습니다. 

감사합니다!!

suyeon.DV님의 프로필

suyeon.DV

질문자

2022.06.05

헐... 강사님 정말 감사합니다. db가 undefined 여서 확인했더니 db가 descructuring이 안 되어 있던 문제였습니다. 그냥 context가 있어서 안 되는거였어요.....

하나씩 짚어보면서 찾아본다고 생각했지만 다시 한 번 주의가 필요하다고 느꼈습니다. 오타 확인 또 확인하고 한 줄씩 생각하고 보는 주의력을 더 길러야겠네요. 감사합니다. 

채널톡 아이콘