
dispatch(ํจ์) -> ํจ์์คํ -> ํจ์ ์์์ dispatch(๊ฐ์ฒด)
3์ด๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ thunk ํจ์๋ฅผ ๊ตฌํํด๋ณด์.
ํดํท์์ createAsyncThunk ๋ผ๋ API๋ฅผ ์ฌ์ฉํด thunk ํจ์๋ฅผ ์์ฑํ ์ ์๋ค.
export const __addNumber = createAsyncThunk(
// ์ฒซ๋ฒ์งธ ์ธ์ : action value
"addNumber"
// ๋๋ฒ์งธ ์ธ์ : ์ฝ๋ฐฑํจ์
(payload, thunkAPI)=>{
setTimeout(()=>{
thunkAPI.dispatch(addNumber(payload));
}, 3000);
}
);
const counterSlice = createSlice({
name: "counter",
initialState,
reducers: {
addNumber: (state, action) => {
state.number = state.number + action.payload;
},
minusNumber: (state, action) => {
state.number = state.number - action.payload;
},
},
});
// App.jsx
...
const onClickAddNumberHandler = () => {
dispatch(__addNumber(number));
};
...