【问题标题】:How to invoke mapStateToProps如何调用 mapStateToProps
【发布时间】:2017-05-09 04:08:39
【问题描述】:

mapStateToProps 返回一个具有 2 个键的对象,providerplan。 在 plan 已经是 props 的属性之前,无法解析提供者的值。 provider 取决于计划的属性 (plan.provider)。

我的想法是,第一次调用 mapStateToProps 时,它将返回以下内容:

(确实是这样)

{
  plan: [Object],
  provider: undefined
}

现在 plan 已解析并映射到道具,我需要再次调用 mapStateToProps,以便 provider 也可以解析。第二次 mapStateToProps 应该返回:

{
  plan: [Object],
  provider: [Object]
}

这是处理这种情况的正确方法吗?

【问题讨论】:

    标签: javascript reactjs redux react-redux


    【解决方案1】:

    我不认为这是解决这个问题的好方法。我相信,如果您有计划作为承诺或异步操作,您必须在更新提供程序值之前等待,您需要这样做 Redux 中间件。在我看来,其中最可靠的是 Thunk,它允许您编写异步代码操作,然后当 Promise 解决时,您可以在您的状态下更新 provider

    要在 UI 中避免 undefined 提供程序值,请使用 defaultProps,这将帮助您避免因 undefined 提供程序而出现的问题。

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      是的,这是一个非常合理的方法。假设发送了第二个操作,将适当的数据添加到存储中,mapState 将重新运行并返回更新后的值,并且组件将重新渲染。

      应该编写您的 React 组件,以便它可以安全地处理缺少的 provider 属性,例如检查它是否存在,如果不存在则返回“正在加载...”组件。

      【讨论】:

        猜你喜欢
        • 2018-01-13
        • 2019-07-13
        • 1970-01-01
        • 1970-01-01
        • 2020-04-08
        • 2016-08-10
        • 2021-03-10
        • 2019-09-28
        • 2017-11-12
        相关资源
        最近更新 更多