选择器连接到多个组件,父组件是否保证先更新?

时间:2020-04-30 14:17:43

标签: reactjs reselect

我的父级和子级如下:

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在父级中受到保护而导致孩子永远不会更新/渲染?

基本上,我要问的是选择器是否可以保证从父组件到子组件按“顺序”更新。

1 个答案:

答案 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