从另一个组件更新组件状态的最简单方法是啥?可以说组件是兄弟姐妹吗?

Posted

技术标签:

【中文标题】从另一个组件更新组件状态的最简单方法是啥?可以说组件是兄弟姐妹吗?【英文标题】:What is the most simplest method of updating component's state from another component? Lets say components are siblings?从另一个组件更新组件状态的最简单方法是什么?可以说组件是兄弟姐妹吗? 【发布时间】:2021-08-07 07:24:21 【问题描述】:

我正在尝试在我的 Web 应用程序中创建交互功能。在一个组件中选择一个选项后,我想更新另一个组件的状态并触发重新渲染。我该怎么办。

【问题讨论】:

reactjs.org/docs/lifting-state-up.html 【参考方案1】:

您可以将两个组件放在另一个组件中,并在那里定义状态和 setState。现在将 setState 作为道具发送到第一个组件。当您选择一个选项时,使用您发送的 setState 设置状态。现在,如果第二个组件使用该状态作为道具,那么它将被重新渲染。

父组件

定义状态

FirstComponent 将 setState 作为 Prop

SecondComponent 将 state 作为 Prop

So, in your case, if the second component's state is defined in the parent, we can send its setState as prop to the first component and when a value is selected, change the state in the first component itself.它将更改父级中存在的状态,这将重新渲染第二个组件,因为该状态是第二个组件中的一个道具。

【讨论】:

所以基本上当我们有交互式组件时,我们应该创建一个父级并批量化父级的状态。设计有效率吗? 我在从事的项目中多次看到这种模式。不确定它是否具有设计效率,但它是一种简单且常用的方法。

以上是关于从另一个组件更新组件状态的最简单方法是啥?可以说组件是兄弟姐妹吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 2 个 React 组件之间传递单个值的最简单方法是啥?

React 从另一个组件向有状态组件传递数据

Vue 使用 vuex 从另一个组件控制和更新状态

从另一个组件vue js和laravel调用方法

如何从另一个组件渲染无状态功能组件

如何在 Reactjs 中从另一个组件触发状态