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文档。