当应用程序状态更改时,子组件(MapLeftNav,Map)不会重新呈现。它有一个父组件(MapView)和几个兄弟。
假设:
1)应用程序状态正在改变并被Redux跟踪
2)我的减速器不仅仅是变异状态(gist here)
-Redux dev工具和Parent(connect
ed compoent)很乐意接受更改
case NEW_MESSAGES:
return reduceVehicleMessagesToVehicles(state, action.payload)
然后该函数返回:
return {
vehicles: updatedVehicles,
traces: updatedTraces,
vehicleMessagesLoading: messagesLoading,
}
3)父组件(MapView, gist here)正在接收新的道具而不是子MapLeftNav
我console.log道具,他们在父组件中更改
我写了一个假的componentWillReceiveProps (nextProps)
{console.log(nextProps)}
,该函数永远不会被。{
child MapLeftNav组件。
<MapLeftNav
mapState={mainMap}
push={push}
vehicles={vehiclesState.vehicles}
updateCounter={vehiclesState.updateCounter}
/>
4)MapLeftNav组件,按要求: https://gist.github.com/thomasgwatson/36d8f6dbd64b0f6425b4beef56075acd
使用React,Redux,React-Redux绑定,react-redux开发工具,素材UI等。我使用React大约18个月而Redux使用了两个月。
当我直接connect
redux到子组件时,一切正常。当我将它们传递给父组件并尝试将应用程序状态作为道具传递时,子组件似乎不会记录状态中的更改。
据我了解,我不应该connect
我的所有组件都能够使用redux存储中保存的应用程序状态!关于可能出现问题的原因有哪些提示?