json-server
를 활용하여 todo-list 만들기
방금 생성한 item의 [상세보기]를 초기 렌더링 직후에 클릭 시, 에러가 발생함
새로운 Item을 추가 |
---|
새로운 Item의 [상세보기] 클릭 시 |
[Item 추가] 코드 (Input.jsx) | [Item 상세보기] 코드 (Detail.jsx) |
---|---|
// Input.jsx
const response = await axios.post("http://localhost:4000/todos", newTodo);
const { newId } = response.data; // <- 이 부분
dispatch(addTodo({ ...newTodo, id: newId }));
// Detail.jsx
const params = useParams();
const filteredTodos = useSelector((state) => {
return state.todos.filter((item) => item.id === params.id);
});
Input.jsx
에서 response.data
의 id
속성을 id가 아닌 newId로 가져와서 store에 저장했기 때문에,
Detail.jsx
에서 item.id
, params.id
로 한번에 가져올 수 없었다.
reponse.data
의 id
속성을 id로 가져옴
// AS-IS
const { newId } = response.data;
// TO-BE(1)
const responseData = response.data;
const newId = responseData.id;
// TO-BE(2)
const { id : newId } = response.data;