我正在尝试找到初始化组件道具的最佳方法......
我有一个从商店获取其值的组件。道具通常使用mapStateToProps,这对大多数情况都很好。
但是,由于mapStateToProps仅在更新商店时调用,因此当我加载组件而未执行任何商店更新时,我的组件未使用商店中的道具进行初始化。
我读过有关将“ownprops”设置为mapStateToProps的第二个参数的事情,以便在更新父组件的道具时调用它,但我不认为这是正确的选项。
必须有一个简单的方法,它必须是因为我是一个初学者,我不知道如何处理似乎是一个常见的主题。
非常感谢您的帮助:)
答案 0 :(得分:1)
您可以设置减速器的初始状态,这可能是您正在寻找的。 p>
function myReducer(state = { /* your initial state here */, action) {
switch (action.type) {
/* action handlers go here */
default: return state;
}
}
Here's some additional information on setting up default values in reducers
答案 1 :(得分:1)
听起来你正在渲染一个依赖于商店数据的组件,但是当渲染组件时,商店是空的。
您需要在呈现组件之前更新商店。这是最简单的答案。
因此,假设您有一个父组件呈现连接到商店的子组件。该父组件应在呈现子组件之前更新存储。
或者如果不是这种层次结构,那么您可以在componentWillMount()生命周期方法中调度一个动作。
另一种选择是在reducer中放置默认值。
如果没有看到您的代码/用例,很难知道正确的解决方案。