1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| import { createSlice, configureStore, createAsyncThunk, } from "@reduxjs/toolkit";
export let changeNumThunk = createAsyncThunk( "numSlice/changeNum", async (params) => { let res = await new Promise((resolve) => { console.log("params", params); setTimeout((state, action) => { resolve(999); }, 1000); }); return res; } );
let msgSlice = createSlice({ name: "msgSlice", initialState: { msg: "hello", }, reducers: { changeMsg(state, action) { state.msg = action.payload; }, }, });
let numSlice = createSlice({ name: "numSlice", initialState: { num: 0, }, reducers: { addNum(state) { state.num++; }, }, extraReducers: (chunk) => { chunk .addCase(changeNumThunk.pending, () => { console.log("pending"); }) .addCase(changeNumThunk.fulfilled, (state, action) => { console.log("fulfilled"); state.num = action.payload; }); }, });
export let { changeMsg } = msgSlice.actions; export let { addNum } = numSlice.actions;
let store = configureStore({ reducer: { msgReducer: msgSlice.reducer, numReducer: numSlice.reducer, }, });
export default store;
|