1.store에 저장된 state가 array, object 자료인 경우 state 변경을 좀 쉽게 편리하게 할 수 있는데


state변경함수에 파라미터 뚫는법

let user = createSlice({
  name : 'user',
  initialState : {name : 'kim', age : 20},
  reducers : {
    changeName(state){
      return {name : 'park', age : 20}
    }
  }
})

 

 

let user = createSlice({
  name : 'user',
  initialState : {name : 'kim', age : 20},
  reducers : {
    changeName(state){
      state.name = 'park'
    }
  }
})

근데 state를 직접 수정하라고해도 변경 잘 됩니다.

state를 직접 수정하는 문법을 사용해도 잘 변경되는 이유는

Immer.js 라이브러리가 state 사본을 하나 더 생성해준 덕분인데 Redux 설치하면 딸려와서 그렇습니다.

 

그래서 결론은 array/object 자료의 경우 state변경은

state를 직접 수정해버려도 잘 되니까 직접 수정하십시오. 

 

2.state 변경함수가 여러개 필요하면

근데 함수는 파라미터문법 이용하면 비슷한 함수 여러개 만들 필요가 없다고 했습니다.

state변경함수에도 파라미터문법 사용가능함 

let user = createSlice({
  name : 'user',
  initialState : {name : 'kim', age : 20},
  reducers : {
    increase(state, a){
      state.age += a.payload
    }
  }
})

'리액트 > 리덕스( Redux Toolkit)' 카테고리의 다른 글

Redux 쓰는 방법 1  (0) 2022.06.01
복사했습니다!