我有一个Reaction Redux工具包切片,在我想要的地方:
- 更新我的状态
- 将此更新状态获取到我的后端
我想做这样的事情:
const sendStateToBackend = createAsyncThunk(
'.../sendStateToBackend',
async (state) => {
const data = await ...
}
)
createSlice({
...,
reducers: {
addTodo:(state, action) => {
state.todos.push(action.payload)
dispatch(sendStateToBackend(state)) // This is an Anti pattern???
}
},
extraReducers(builder) {
builder.addCase(sendStateToBackend.pending, (state) => {
state.isLoading = true
}
builder.addCase(sendStateToBackend.fulfilled, (state, action) => {
state.isLoading = false
}
}
})
在我的页面中.tsx:
const onSubmit = async (values) => {
try {
dispatch(addTodo(values))
// Can I trigger another dispatch here?
} catch (error) {
console.error('An error occurred while submitting the form: ', error)
}
}
我怎样才能做到这一点呢?