【发布时间】:2022-10-19 02:47:54
【问题描述】:
每当删除成功时,我都会尝试显示小吃栏。我为此创建了一个动作。
我在哪里调度该动作?
目前,我的代码如下所示:
export const deleteSelectedEntry = createAsyncThunk('entries/delete/selected', async (id: string) => {
const response = await BackendService.deleteEntry(id);
const dispatch = useAppDispatch();
dispatch(setSnackBarState({
state: true,
message: "SUCCESS DELETING"
}));
return response.data
})
这是您在使用 redux 工具包时创建的切片类之一中的异步 thunk。
我按照教程中 redux-toolkit 的建议为 dispatch 方法创建了一个钩子:
export const useAppDispatch: () => AppDispatch = useDispatch
但是,无论我认为我应该能够放置调度方法,我都会收到一个错误,我不能在那里使用反应钩子。
我最初的尝试是将它放在 extraReducers 中:
extraReducers(builder) {
builder
.addCase(deleteSelectedEntry.fulfilled, (state: MyState, action: PayloadAction<Entry>) => {
// do Stuff
})
那么你如何在 react redux 中从其他动作中分派动作?我在 StackOverflow 上看到了人们在 asyncThunk 中使用 useDispatch 方法的示例。
帮助和提示表示赞赏!
如有必要,我会发布更多代码。
【问题讨论】:
标签: reactjs redux-toolkit