我有两个组件,每个组件都通过容器连接,并且都具有通过提供的状态映射的道具。
有一种操作会导致子组件重新渲染,而其父组件不会。我不明白这怎么可能。
我确定我的减速器没有改变状态。此操作和重新渲染差异的结果是子组件中的道具未定义(因为它已成功从状态中删除)。但是,如果父级的渲染函数会按照我的预期重新运行,那么该渲染函数将不会运行。
为什么状态改变时父组件的渲染函数没有被调用?
我有两个组件,每个组件都通过容器连接,并且都具有通过提供的状态映射的道具。
有一种操作会导致子组件重新渲染,而其父组件不会。我不明白这怎么可能。
我确定我的减速器没有改变状态。此操作和重新渲染差异的结果是子组件中的道具未定义(因为它已成功从状态中删除)。但是,如果父级的渲染函数会按照我的预期重新运行,那么该渲染函数将不会运行。
为什么状态改变时父组件的渲染函数没有被调用?
这听起来与 react-redux v4 中的实现细节有关,其中子组件在父组件之前更新。这在react-redux v5中发生了变化,您可以通过安装来测试它npm install react-redux@next
。