我正在使用 v2.2.2 的 redux-loop 来处理来自服务器调用的副作用。
从我的组件中分派了一个动作,如下所示:
checkStatus() {
const user = Utils.toJS(this.props.user);
this.props.dispatch(UserActions.getUserData(user._id))
.then((res) => {
console.log(res)
}
}
我希望我的承诺会从调度中回来,但它总是会回来
[]
我的动作看起来像这样...
export async function getUserData(data) {
return await getUser(data)
.then((res) => ({type: USER_GET_SUCCESS, payload: res}))
.catch((err) => ({type: USER_GET_FAILURE, payload: err}));
}
其中 getUser 看起来像:
export async function getUser(data) {
return await get(`/users/${data}`)
}
并被减速器捕获并保存到如下状态:
case USER_GET_SUCCESS:
return state
.set('user', fromJS(action.payload.data));
数据总是会正确返回,但由于某种原因永远不会作为对原始调度的承诺而返回。
任何建议都会很棒!