작성
·
356
0
안녕하세요
페이지 구현 일기쓰기(new)까지 수강하고
코딩을 완료하였는데 수정완료 버튼을 누르면 수정이 되질 않는 버그와 console.log(targetDate)를 하면 콘솔에 두번 출력되는 버그가 있어서 깃 링크를 드리고 질문을 하려했으나 깃이 자꾸 오류가나서 그런데 혹시 메일로 파일을 보내드리면 그거에 대한 답변이 가능하신지 궁금하여 여쭤봅니다.
답변 1
0
일단 코드라고 전달해드리고 싶어서 오류같은거 신경안쓰고 코드박스를 붙혀드리겠습니다.
어느 부분에서 위에 말한 부분이 작동하지 않는건지 궁금합니다 ㅠ
https://codesandbox.io/s/frosty-river-nfou26?file=/public/manifest.json
안녕하세요 이정환입니다.
우선 Edit이 작동하지 않는 문제부터 설명드릴게요
현철님이 작성하신 src/App.js의 reducer 함수의 'EDIT' case는 다음과 같이 작성되어 있습니다.
그리고 이 'EDIT'을 호출하는 App 컴포넌트의 onEdit 함수는 다음과 같이 작성되어 있습니다.
문제는 여기서 발생합니다. onEdit 함수에서 dispatch를 호출 할 때 인수로 전달하는 액션 객체에는 수정 대상 일기 아이템의 id를 뜻하는 targetId 프로퍼티가 없습니다. 대신 수정할 일기 id를 data.id로 담아서 전달했습니다.
그러므로 src/App.js의 reducer 함수를 다음과 같이 수정하셔야 정상적으로 작동합니다.
정리하면 action.targetId가 아닌 action.data.id로 작성하셔야 정상적으로 작동합니다.
두번째 질문 console.log(targetDate) 가 두번 호출되는 문제의 원인은 확실히 확인하기는 어렵지만 (보내주신 codeSandBox의 코드에는 이 콘솔 명령문이 없습니다 ㅠㅜ)
아마 index.js의 <React.StrictMode>를 제거하면 한번만 호출 될 것으로 예상됩니다.
src/index.js를 다음과 같이 수정해주세요
감사합니다.