Inflearn Community Q&A
분해구조 할당자에 이상한 값이 들어오네요
Resolved
Written on
·
194
3
case types.SET_PHOTO_URL:
return {
...state,
currentUser: { ...state.currentUser, photoURL: action.payload }
}
강의에 나온 코드로 처리를 하면
기존 currentUser스키마가 아닌
_delegate, multifactor가 들어가면서 이상하게 출력됩니다.
그래서 아래와 같이 JSON.parse, JSON.stringify를 통해 처리를 하면 원하는대로 동작을 하게 되는것을 확인했는데 정확한 이유를 모르겠네요
case types.SET_PHOTO_URL:
return {
...state,
currentUser: { ...JSON.parse(JSON.stringify(state.currentUser)), photoURL: action.payload }
}
user_reducer에서
console.log(`before state currentUser: ${JSON.stringify(state.currentUser)}`);
console.log(`before state currentUser2: ${JSON.stringify({ ...state.currentUser }
요렇게 출력했을 때 두 값이 다르게 출력되었습니다.
Answer 1
3
안녕하세요 !!!
얘기해주신걸 보고 저도 한번 해봤는데 정말그렇게 되네요 ...
처음에
App.js 에서
user로 받아온 값이 리덕스 스토어에 들어갈때는 필요한 정보만 들어가는데
그걸 ...state.currentUser로 다시 넣을때는 모든 값이 들어가게 되네요 ...
그리고 말씀해주신것처럼 stringfy 와 parse를 해서 넣으면 다시 필요한 값만 들어가게 되네요 !
이거 찾으신거 대단한것 같아요...
현재 저희가 사용하고 있는 값들이 email, displayName, photoURL등이 두군데 모두 들어있어서 에러는 안나지만 ....
몰랑님이 말씀해주신것처럼 바꿔주는게 좋을것같습니다 !
아니면 처음 유저 정보를 리덕스 스토어에 넣을때
setUser에서 이렇게 넣어줘도 될 것 같습니다 !!!
너무나 좋은 정보 올려주셔서 감사합니다.!




