【发布时间】:2020-03-22 19:27:57
【问题描述】:
无法成功使用过去帖子中的解决方案。
每次应用加载时,我都会尝试在 app.js 上使用 useEffect 运行一个操作,如下所示:
26 | const App = () => {
27 |
28 | useEffect(() => {
> 29 | store.dispatch(loadUser());
30 | }, []);
31 |
32 | return (
我得到的错误:
Error: Actions must be plain objects. Use custom middleware for async actions.
动作:
export const loadUser = () => (dispatch, getState) => {
dispatch({ type: USER_LOADING})
const token = getState().auth.token
const config = {
headers : {
"Content-type": "application/json"
}
}
if (token) {
config.headers["x-auth=token"] = token
}
axios.get("/api/auth/user", config)
.then(res => dispatch({
type: USER_LOADED,
payload: res.data
}))
.catch(err => {
dispatch(returnErrors(err.response.data, err.response.status))
dispatch({
type: AUTH_ERROR
})
})
}
我做错了什么?
【问题讨论】:
-
您的
loadUser返回一个函数,而不是一个对象。好像你没有正确配置 redux-thunk -
dispatch(returnErrors(err.response.data, err.response.status))
returnErrors是一个动作吗? -
是的,它来自一个 errorActions 文件
标签: javascript reactjs redux