我正在目睹一种我无法理解的行为,这似乎不对。
当我发送一个动作时,我的组件重新渲染,因为this.props.location
(和其他人,比如params或routeParams)改变了,当我说“改变”时,我的意思是指针不同,但是内部属性是一样的。
调度的操作不会以任何方式更改路径,只会更改redux存储中的某些数据(在其自己的已安装密钥上)。
因此,shouldComponentUpdate
(未被覆盖)检测到更改并强制重新呈现。但是根本没有变化!
这很烦人,因为我有一个setInterval例程,它调度一个动作来每隔30秒调用一次服务器来获取一些数据。然而,仍然重新渲染不关心此状态更改的已连接组件。 redux面板显示仅调度此操作,没有LOCATION_CHANGE。
如果我拔掉react-router-redux(删除使用syncHistoryWithStore
),则此行为会停止。
这是预期的行为,还是我错过了什么?我不想在所有连接的组件中覆盖shouldComponentUpdate
。
你能指出我在组件中注入反应路由器道具的位置吗?