221226 - TIL

Junho Yun·2022년 12월 26일
0

TIL

목록 보기
40/81
post-thumbnail
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에러가 발생했습니다. 꼼꼼하지 못했습니다.

profile
의미 없는 코드는 없다.

0개의 댓글