如何解决redux错误使用自定义中间件进行异步操作


export const register = (user) => async (dispatch) => {
try {
const { res } = await api.register(user)
dispatch({ type: REGISTER, payload: res });
} catch (err) {
console.log(err)
}
}
export default (user = [], action) => {
switch (action.type) {
case REGISTER:
return [...user, action.payload];
default:
return user;
}
}

当我发送时;未捕获错误:操作必须是纯对象。将自定义中间件用于异步操作";。有人能告诉我这里出了什么问题吗?

从给出的描述和代码片段来看,这是我对这个问题的结论。

Redux库默认不支持异步操作。图书馆通过中间件实现了这一点。异步操作最流行的两个中间件是redux-thunk和redux-saga。

我很少使用redux传奇。但是使用redux thunk可以如下解决问题。

1安装redux thunk库。

npm安装redux thunk

2将redux thunk添加到存储

看起来像这个

const store = createStore(
rootReducer,
applyMiddleware(thunk)
);

在这里,您可以将根减速器替换为源中使用的减速器的名称。

现在,当您从代码中调度函数时,中间件将添加异步函数中使用的调度。

有关详细说明,请参阅官方redux thunk文档。

相关内容

  • 没有找到相关文章

最新更新