我在ComponentDidMount中调用了3个动作,但结果是 保存在称为
的最后一个动作中 componentDidMount() {
if (this.props.auth.token !== undefined) {
this.props.getBillsRequest(this.props.auth.token)
this.props.getProfile(this.props.auth.token)
this.props.getInstallmentsRequest(this.props.auth.token)
console.log(this.props)
} else {
this.props.navigation.navigate("Login")
}
}
预期产量
bills : {items: object}
profile: {user: object, detail: object}
installments: {0: object, 1:object , ...}
但是我得到了
bills: {items: undefined}
profile: {user: undefined}
installments: {items: object, profile: object, biils: object}
答案 0 :(得分:0)
您需要await
进行提取调用,而不是在声明将要运行的诺言之后直接返回newstate,否则不执行将导致newstate立即返回,因此它处于初始状态。但不要这样做,您的redux减速器应该是纯净的。
您不应该在减速器中进行Ajax调用。有关更多详细信息,请参见Perform Ajax Fetch in a Redux Reducer?。
我建议调整一些模式以处理redux。我非常喜欢Nir Kaufman概述的模式,有关其相关代码,请参见https://www.youtube.com/watch?v=JUuic7mEs-s和https://github.com/isubasinghe/advanced-redux-patterns