React组件不会重新渲染另一个容器的状态更改
问题描述:
我有两个容器,即:FilterContainer
和MapContainer
。React组件不会重新渲染另一个容器的状态更改
FilterContainer有一个状态:selectedFitlers
,当用户从复选框列表中点击某些内容时,该状态会被更新。
什么MapContainer
应该做,看看state.filterListContainer.selectedFilters
数组,并显示基于此的标记。
但这不幸的是没有发生。我看到这些更改反映在redux状态中(通过查看devTools),但不知何故MapContainer
没有得到这些更改的通知。我试图挖掘componentWillReceiveProps
生命周期钩子,但没有看到nextProps
获得新值。
这里是我的MapContainer
代码:
https://gist.github.com/ghoshabhi/a275f923bba4a92b2b1f9dc3fbe09826#file-mapcontainer-index-jsx-L50
我不明白为什么我的容器不能重新描绘或接收有关我的终极版店状态的变化更新。
欢迎任何帮助/建议/替代方法:)
先谢谢您!
答
我看着你的代码,我注意到,在FilterContainer组件您的评论的selectedFilters PropTypes,同时它还是在MapContainer组件的地方。尝试在FilterContainer中注释它,以查看它是否可用。这可能是一个不正确类型的问题。
上面提到'state.filterContainer.selectedFilters',但在代码中它是'state.filterListContainer.selectedFilters'。这只是一个错字吗? – Martin
你好@马丁!是的,它应该是'state.filterListContainer.selectedFilters'。我会更新这个问题!谢谢 –
如果需要,我可以共享更多代码:) –