1. store.js 안에 state 수정해주는 함수부터 만든다.
(store.js)
let user = createSlice({
name : 'user',
initialState : 'kim',
reducers : {
changeName(state){
return 'john ' + state
}
}
})
2. 다른 곳에서 쓰기 좋게 export 해둔다.
(store.js)
export let { changeName } = user.actions
3. 원할 때 import 해서 사용한다. (근데 dispatch() 로 감싸서 써야한다.)
(Cart.js)
import { useDispatch, useSelector } from "react-redux"
import { changeName } from "./../store.js"
(생략)
<button onClick={()=>{
dispatch(changeName())
}}>버튼</button>
store안에 있는 state를 수정하고 싶으면
state 수정해주는 함수를 store.js 에 만들고
컴포넌트는 이걸 부르기만 하는 식으로 state를 수정하게 되어있다.
만약 컴포넌트에서 직접 state를 수정하면 지금은 편하지만 컴포넌트가 100개에서 직접 변경하다가 state가 다른걸로 변하는 오류가 발생하면 컴포넌트 100개를 다 찾아봐야한다.