从商店

时间:2017-05-10 20:05:32

标签: javascript reactjs redux react-redux

我正在尝试找到初始化组件道具的最佳方法......

我有一个从商店获取其值的组件。道具通常使用mapStateToProps,这对大多数情况都很好。

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

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

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

非常感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

您可以设置减速器的初始状态,这可能是您正在寻找的。

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中放置默认值。

如果没有看到您的代码/用例,很难知道正确的解决方案。