mapStateToProps返回一个包含2个键的对象,提供商&的计划即可。 在计划已经是props的属性之前,无法解析提供者的价值。 提供商取决于计划的属性(plan.provider)。
我的想法是,第一次调用mapStateToProps时,它将返回以下内容:
(确实会发生什么)
{
plan: [Object],
provider: undefined
}
现在计划已解析并映射到道具我需要再次调用mapStateToProps,以便提供程序可以解析。第二次mapStateToProps应该返回:
{
plan: [Object],
provider: [Object]
}
这是处理这种情况的正确方法吗?
答案 0 :(得分:1)
我不认为这是解决这个问题的好方法。我相信如果你有计划作为承诺或异步动作,你必须等待更新提供者的价值,你需要做它Redux Middleware.Most可靠的他们在我看来是Thunk,它允许你编写异步代码行动,然后当Promise结算时,您可以更新您所在州的provider
。
要避免在用户界面提供undefined
提供商价值,请使用defaultProps
,以帮助您避免因undefined
提供商而导致的问题。
我希望有所帮助。
答案 1 :(得分:0)
是的,这是一种非常合理的方法。假设调度了第二个操作,将适当的数据添加到商店,mapState
将重新运行并返回更新的值,组件将重新呈现。
应该编写您的React组件,以便它可以安全地处理丢失的provider
道具,例如检查它是否存在,如果不存在则返回“loading ...”组件。