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 |
댓글