防止子级在更新父级状态时重新渲染,使用父级方法作为本机反应的道具

Posted

技术标签:

【中文标题】防止子级在更新父级状态时重新渲染,使用父级方法作为本机反应的道具【英文标题】:Prevent child from rerender when it updates parents state using parent method as prop in react native 【发布时间】:2020-06-28 12:39:35 【问题描述】:

我有一个父组件和两个子组件。所以我想在第一个组件中执行某些操作时更新第二个组件。假设我有 Component1 和 Component2,还有一个 ParentComponent,所以当我从 Component1 更改 ParentComponent 的状态时,它会更改 Component2 中的状态,但也会重新渲染 component1。我不想重新渲染组件 1。尝试使用回调但没有帮助。

【问题讨论】:

【参考方案1】:

您可以使用memo 来处理这种情况:

const MyComponent = React.memo(function MyComponent(props) 
  /* only rerenders if props change */
);

此类组件只有在其自身的状态或道具发生变化时才会重新渲染。

【讨论】:

我已经尝试过了,但它仍然会重新渲染子组件 1,因为它找到了将父组件的状态更改为更新的道具的功能。你能告诉我应该怎么做才能防止这种情况发生吗?

以上是关于防止子级在更新父级状态时重新渲染,使用父级方法作为本机反应的道具的主要内容,如果未能解决你的问题,请参考以下文章

仅在 Safari 中 - 位置:固定子级在父级为位置时被切断:固定且溢出:隐藏

在不改变状态、道具或父级的情况下反应子级渲染

C Pipe:父级在子级结束之前从子级读取

React 父/子状态更改设计问题

ReactJS - 更新后子级无法访问父级状态

javascript 从父级中的子级渲染节点更新