选择器连接多个组件,父组件是否保证先更新?
Selector connected to multiple components, is parent component guaranteed to update first?
我的父子组件如下:
const Parent = ({ valueFromSelector }) => {
if (valueFromSelector === undefined) return null;
return <Child />;
}
const Child = ({ valueFromSelector }) => {
return <span>`i am unsafely using ${valueFromSelector.property}`</span>
}
使用 valueFromSelector.property
是否不安全,或者如果 valueFromSelector
在 Parent 中受到保护,我可以确定 Child 永远不会 update/render 吗?
基本上我要问的是选择器是否保证在 "order" 中从父组件更新到子组件。
简短的回答,不幸的是,选择器不能保证在 "order" 中从父组件更新到子组件。在某些情况下可能会出现问题。
这个问题被称为zombie children,redux version 6 试图修复这个问题,但不幸的是Context API 无法在性能上完全支持redux。所以他们不得不在版本 7 中恢复该更改,并且无法防止功能组件出现问题。
以下文章更详细地回答了您的问题:
https://kaihao.dev/posts/Stale-props-and-zombie-children-in-Redux
https://react-redux.js.org/api/hooks#stale-props-and-zombie-children
我的父子组件如下:
const Parent = ({ valueFromSelector }) => {
if (valueFromSelector === undefined) return null;
return <Child />;
}
const Child = ({ valueFromSelector }) => {
return <span>`i am unsafely using ${valueFromSelector.property}`</span>
}
使用 valueFromSelector.property
是否不安全,或者如果 valueFromSelector
在 Parent 中受到保护,我可以确定 Child 永远不会 update/render 吗?
基本上我要问的是选择器是否保证在 "order" 中从父组件更新到子组件。
简短的回答,不幸的是,选择器不能保证在 "order" 中从父组件更新到子组件。在某些情况下可能会出现问题。
这个问题被称为zombie children,redux version 6 试图修复这个问题,但不幸的是Context API 无法在性能上完全支持redux。所以他们不得不在版本 7 中恢复该更改,并且无法防止功能组件出现问题。
以下文章更详细地回答了您的问题:
https://kaihao.dev/posts/Stale-props-and-zombie-children-in-Redux
https://react-redux.js.org/api/hooks#stale-props-and-zombie-children