React-Redux连接组件未将更新的道具传递给子组件

时间:2016-04-19 01:41:15

标签: javascript reactjs redux

当应用程序状态更改时,子组件(MapLeftNav,Map)不会重新呈现。它有一个父组件(MapView)和几个兄弟。

假设:

1)应用程序状态正在改变并被Redux跟踪

  • 此操作显示在Redux Dev工具中,包含更新的字段;
  • 我正在父组件(MapView)中记录vehiclesState,它们正在改变;

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存储中保存的应用程序状态!关于可能出现问题的原因有哪些提示?

0 个答案:

没有答案