2017-05-10 39 views
1

我试图找到最佳方式来初始化我的组件道具...从商店初始化道具

我有一个组件正在从商店获取它的值。道具通常用mapStateToProps来处理,这对大多数情况来说都很好。

但是,由于mapStateToProps仅在商店更新时调用,因此当我在未执行任何商店更新的情况下加载我的组件时,我的组件未使用商店中的道具进行初始化。

我读了关于将“ownprops”设置为mapStateToProps的第二个参数的事情,以便在父组件的道具更新时调用它,但我不认为这是正确的选项。

必须有一个简单的方法,它必须是因为我是一个初学者,我不知道如何处理似乎是一个共同的话题。

非常感谢您的帮助:)

+0

对于初始渲染,它应该触发mapStateToProps。你能提供一个链接到你的真实用例(例如通过jsbin)的沙箱吗? – Skay

回答

1

这听起来像你正在呈现依赖于数据从商店,但是,当组件被渲染的商店是空的一个组成部分。

您需要在组件呈现前更新商店。这是最简单的答案。

因此,假设您有一个父组件,可以呈现连接到商店的子组件。该父组件应在呈现子组件之前更新商店。

或者如果该层次结构不是这种情况,那么您可以在componentWillMount()生命周期方法中分派一个操作。

另一种选择是将默认值放入减速器中。

很难在没有看到您的代码/用例的情况下知道正确的解决方案。

+0

感谢您的回答。我会看看我的情况最好。我仍然想知道为了使mapStateToProps查找商店内容而需要分派什么样的操作。它会是一种没有价值的假动作创造者吗? –