toggle: (state, action) => {
const categoryList = [
"todo",
"working",
"validate",
"complete",
"archive",
];
if (action.payload[0] == "nextCategory") {
const nextStep = categoryList[++action.payload[2]];
axios.patch(`http://localhost:3001/boards/${action.payload[1]}`, {
category: nextStep,
});
state.boards.forEach((todo) => {
if (todo.id == action.payload) {
todo.category = categoryList[++action.payload[2]];
}
});
} else {
const prevStep = categoryList[--action.payload[2]];
axios.patch(`http://localhost:3001/boards/${action.payload[1]}`, {
category: prevStep,
});
state.boards.forEach((todo) => {
if (todo.id == action.payload) {
todo.category = categoryList[--action.payload[2]];
}
});
}
axios.patch(`http://localhost:3001/boards/${action.payload[0]}`, {
category: action.payload[1],
});
state.boards.forEach((todo) => {
if (todo.id == action.payload) {
todo.category = action.payload[1];
}
});
},
case 때문에 코드가 더러워 진것도 열받는데, 404 에러까지 발생하다니 더 열받네 .
근데 또 patch는 정상 동작하긴함. 대신에 랜더링이 안됨. state쪽 오류인지 확인해보자 확인해볼 것, 그 외 기본 코드 재확인해볼 것
//action= [ 버튼 종류 , board.id, current category] 를 입력 받습니다.
if (action.payload[0] == "nextCategory") {
const nextStep = categoryList[++action.payload[2]];
console.log(action.payload[1]);
axios.patch(`http://localhost:3001/boards/${action.payload[1]}`, {
category: nextStep,
});
state.boards.forEach((todo) => {
if (todo.id == action.payload[1]) {
todo.category = categoryList[action.payload[2]];
}
});
} else {
const prevStep = categoryList[--action.payload[2]];
axios.patch(`http://localhost:3001/boards/${action.payload[1]}`, {
category: prevStep,
});
payload로 들어오는 배열의 순서를 헷갈려서 발생한 오류입니다. 주석처리로 해당 내용을 추가하는 방법으로 추후 오류를 방지했습니다. (이후 리팩토링 하려했는데 팀원한테 걸렸습니다 ㅠㅠ)
또한 코드 수정 중 불필요한 코드가 들어가서 404에러가 발생했습니다. 꼼꼼하지 못했습니다.