我的父级和子级如下:
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
在父级中受到保护而导致孩子永远不会更新/渲染?
基本上,我要问的是选择器是否可以保证从父组件到子组件按“顺序”更新。
答案 0 :(得分:2)
简而言之,不幸的是,不能保证选择器会从父组件到子组件按照“顺序”进行更新。在某些情况下可能会出现问题。
该问题称为“僵尸儿童”,并且redux版本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