redux Didnt存储在每个州

时间:2019-09-03 04:07:28

标签: javascript react-native redux

我在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}

1 个答案:

答案 0 :(得分:0)

您需要await进行提取调用,而不是在声明将要运行的诺言之后直接返回newstate,否则不执行将导致newstate立即返回,因此它处于初始状态。但不要这样做,您的redux减速器应该是纯净的。

您不应该在减速器中进行Ajax调用。有关更多详细信息,请参见Perform Ajax Fetch in a Redux Reducer?

我建议调整一些模式以处理redux。我非常喜欢Nir Kaufman概述的模式,有关其相关代码,请参见https://www.youtube.com/watch?v=JUuic7mEs-shttps://github.com/isubasinghe/advanced-redux-patterns