【问题标题】:Redux-Toolkit createAsyncThunk Dispatch is showing as undefinedRedux-Toolkit createAsyncThunk Dispatch 显示为未定义
【发布时间】:2020-10-27 21:29:36
【问题描述】:

使用 Redux-Toolkit,我尝试在 createAsyncThunk 内使用 ThunkAPI 和调度,但由于类型错误而被拒绝。不知道如何解决。

我的商店:

export const store = configureStore({ 
    reducer: rootReducer, 
    middleware: [...getDefaultMiddleware()],
});

我的行动:

export const tester = createAsyncThunk(
    'tester',
    async (testData, {dispatch}) => { 
        await dispatch(load(true));
        const final = await someExternalFunc(testData)
        return final;
    }
);

但是,我得到的输出是

任何帮助将不胜感激。

【问题讨论】:

  • 请做一个reproducible的例子:How to create a Minimal, Reproducible Example,没有迹象表明它是错误的来源,最好做一个沙箱codesandbox,并请添加实际代码而不是图像。
  • 除了解构 thunkAPI 对象之外,您是否可以将整个对象传入并查看那里是否定义了调度方法?
  • @OmarNasr,即使我有thunkAPI 而不是{dispatch},当我执行console.log 时,我会得到未定义的thunkAPI。
  • 你在哪里以及如何发送这个 thunk? (此外,如果您不自定义任何内容,则无需在该商店设置 sn-p 中自己致电 getDefaultMiddleware() - 您可以完全忽略它。)
  • 所以你不要调用tester 对,显示整个代码。

标签: javascript reactjs redux redux-thunk redux-toolkit


【解决方案1】:

根据您的评论,您没有正确调用 thunk。

调用test()会返回一个动作,那么你应该调度这个动作:

const fetchTodo = createAsyncThunk("todo/fetchTodo", async (args, thunkAPI) => {
  console.log(thunkAPI, "thunkAPI");
  const response = await todoAPI();
  return JSON.stringify(response);
});

dispatch(test(testData));

【讨论】:

猜你喜欢
  • 2021-08-23
  • 2020-09-26
  • 2021-09-17
  • 2020-09-13
  • 2020-10-03
  • 2021-12-07
  • 2020-10-03
  • 2021-11-19
  • 2021-11-07
相关资源
最近更新 更多