본문 바로가기
프론트엔드/React(코딩애플)

React, Redux state가 object/array일 경우 변경

by Hyeon_E 2023. 3. 17.

Redux state가 object/array일 경우 변경

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

array, object 자료의 경우 state변경은 state를 직접 수정

 

직접 수정해도 잘 변경되는 이유는

Immer.js 라이브러리가 state 사본을 하나 더 생성해주기 때문인데

Redux 설치하면 Immer.js 라이브러리가 같이 설치됨

 

비슷한 state 변경함수가 여러개 필요할 경우 파라미터 문법 이용

let user = createSlice({
  name : 'user',
  initialState : {name : 'Lee', age : 25},
  reducers : {
    increase(state, action){
      state.age += action.payload
    }
  }
})
  • action에 다른 이름으로 해도 되지만 보통 action이라고 지음
  • action.type은 state 변경함수 이름이 나옴
  • action.payload는 파라미터가 나옴(즉 내가 사용하기 원하는 값이 나오는 것)

'프론트엔드 > React(코딩애플)' 카테고리의 다른 글

React, react-query  (0) 2023.03.21
React, localStorage  (0) 2023.03.19
React, Redux store의 state 변경  (0) 2023.03.16
React, store에 state 보관하고 사용  (0) 2023.03.16
React, Redux Toolkit 설치와 셋팅  (0) 2023.03.14

댓글