0

我正在目睹一种我无法理解的行为,而且这似乎不正确。

当我调度一个动作时,我的组件会重新渲染,因为this.props.location(以及其他,如 params 或 routeParams)发生了变化,当我说“变化”时,我的意思是指针不同,但内部属性是相同的。

调度的动作不会以任何方式改变路由,只是 redux 存储中的一些数据(在它自己的挂载键上)。

因此,shouldComponentUpdate(未覆盖)检测到更改并强制重新渲染。但是一点变化都没有!

这很烦人,因为我有一个 setInterval 例程,它每 30 秒分派一个动作来调用服务器以获取一些数据。然而,不关心这种状态变化的连接组件仍然会重新渲染。redux 面板显示只调度了这个动作,没有 LOCATION_CHANGE。

如果我拔掉 react-router-redux (删除使用syncHistoryWithStore),这种行为就会停止。

这是预期的行为,还是我错过了什么?我不想覆盖shouldComponentUpdate所有连接的组件。

您能否指出在组件中注入反应路由器道具的位置?

4

0 回答 0