如何使用来自reducer的一些数据更新组件的状态

时间:2018-06-22 10:48:12

标签: javascript reactjs

可以说我有一个subcategoryContainer.js,它将道具传递给subcategory.js,现在在subcategory.js中导入了另一个组件filter.js。此filter.js从subcategory.js接收道具。数据来自存储。在这里,redux thunk正在异步更新存储。

现在问题出在将道具置于filter.js状态。初始状态设置为空对象。即使我在componentWillReceiveProps方法中更新状态,我也只能在render()中获得空对象,而不是在应具有道具数据的更新状态中。

这是触发方法的顺序。

1.render() // initial data from redux reducer//
2.componentWillReceiveProps()
3.render() // new data by redux thunk

在第3点,似乎componentWillReceiveProps()也应该触发,但不是。

如何使用新接收到的道具(props->由thunk更新)来更新filter.js状态

我应该怎么做。请协助。

1 个答案:

答案 0 :(得分:1)

您确定componentWillReceiveProps确实被触发了吗?它仅在道具实际更改时触发,而不在组件最初安装且道具不更改时触发。您可能不想将状态初始化为空状态,而是已经将其初始化为基于props的东西。