* store에 저장된 state가 array, object 자료인 경우
- Immer.js 라이브러리가 state사본을 하나 더 생성해주어서 직접 수정하는 문법도 잘 변경 된다.
(Redux를 설치하면서 Immer.js라이브러리가 같이 설치되었다.)
- array/object자료의 경우 state변경을 state를 직접 수정해버려도 잘 된다.
(참고) 그래서 state를 만들 때 문자나 숫자 하나만 필요해도 redux에서는 일부러 object아니면 array에 담는 경우가 있다. 수정이 편리하기 때문에
let user = createSlice({
name : 'user',
initialState : {name : 'kim', age : 20},
reducers : {
changeName(state){
state.name = 'park'
}
}
})
* 다른 예시 코드
let user = createSlice({
name : 'user',
initialState : {name : 'kim', age : 20},
reducers : {
increase(state){
state.age = state.age + 1
}
}
})
* state 변경 함수가 여러개 필요할 때
- 파라미터를 이용한다.
- state변경함수의 두번째 파라미터를 이용한다.
let user = createSlice({
name : 'user',
initialState : {name : 'kim', age : 20},
reducers : {
increase(state, action){
state.age = state.age + action.payload
}
}
})
increase(10) // + 10이 된다.
increase(100) // + 100이 된다.
(참고)
- action 이런 식으로 작명 많이 한다.
- action.type 하면 state변경함수 이름이 나온다.
- action.payload 하면 파라미터가 된다.
'Study > React' 카테고리의 다른 글
[React_study] 터미널 / 브라우저 콘솔창에 warning (0) | 2022.06.20 |
---|---|
[React_study] reset css 하는 방법 + npm으로 설치 (0) | 2022.06.18 |
[React_study] Redux store의 state 변경 (0) | 2022.06.12 |
[React_study] Redux store에 state 보관 & 호출 (0) | 2022.06.12 |
[React_study] Redux & Redux Toolkit 셋팅 및 사용 (0) | 2022.06.12 |