[React] Redux toolkit Reducers에서 배열 변경하는 방법

기존 배열(state)을 새 배열(action)로 교체해야 하는데 처음엔 아래 처럼 해보기도 하고 그냥 action.payload만도 넣어보고 [...action.payload] 이렇게도 넣어보고 했지만... 에러는 안 나지만 작동이 안 됐다.

 

 

결국 공식 사이트에서 해결 방법 찾음...

 

역시 모든 답은 공식 사이트에.

 

리액트에서는 불변성이 중요한데 배열을 사용할 때에는 카피본을 만들어서 수정해야한다 정도로 가볍게만 알고있다가 리덕스툴킷에서 제대로 당한거다. 

 

One of the primary rules of Redux is that 
our reducers are never allowed to mutate the original / current state values!
-https://redux-toolkit.js.org/usage/immer-reducers

 

내가 고민한 코드에선 새 배열을 기존 state에 할당하는(=) 대신 아예 새로운 배열을 반환(return) 하는 형식으로 코드를 짜 주어야 했다.

 

 

immer에 대해 제대로 공부 할 필요가 있겠다.

'SW공부 > React' 카테고리의 다른 글

[React] axios 요청시 .catch에서 에러 응답 열기  (0) 2023.07.17
[React] Proxy  (0) 2023.06.07
[React] Automatic Batching  (1) 2023.04.19
[React] Router 설치  (0) 2023.04.09