我想知道是否可以(或一个好的做法)dispatch(someDumbAction())
从 extraReducer调用。
例如,我setData()
在reducers
对象 from 中有一个操作createSlice
。我想setData()
直接在我的组件中调用。但我也想在extraReducer
侦听器中调用它,以便重用 reducer 逻辑,如下所示:
// Thunk Action
export const getData = createAsyncThunk('data/getData', async (params) => {
return await api.get({ params })
})
// Slice creation
const slice = createSlice({
name: 'data',
initialState: [],
reducers: {
setData: (state, { payload }) => {
state.push(payload);
})
},
extraReducers: (builder: any) => {
builder.addCase(getData.pending, (state) => {
//...
})
builder.addCase(getData.rejected, (state) => {
//...
})
builder.addCase(getData.fulfilled, (state, { payload }) => {
// Here I want to dispatch `setData` action, in order to reuse that logic
// dispatch(setData(payload));
})
},
})
// In any component: dispatch(setData([...]);