如何将状态值发送到与 React 中的道具相同级别的组件?

How to send a State value to a component at the same level as a prop in React?

我有这样的组件结构:

所有这些组件都在主 App 组件中。我想将状态值从 SeleccionadorEmpresa 发送到 Nombres,但 Nombres 不是 SeleccionadorEmpresa 的子元素,它们是同一级别的组件。如何将状态值作为道具从 SeleccionadorEmpresa 发送到 Nombres?

您应该在父级 class 上控制两个状态,然后父级会将值发送给子级,在本例中为 a

您应该将状态提升到父组件。 然后关联的状态值和设置器可以作为道具传递下去。

https://reactjs.org/docs/lifting-state-up.html

import React, { useState } from 'react';

function App(props) {
  const [nombres, setNombres] = useState("nombres");
  return (
    <SeleccionadorEmpresa nombres={nombres} setNombres={setNombres} />
    <Nombres nombres={nombres} />
  );
}

function SeleccionadorEmpresa({ nombres, setNombres }) {
  return (
    <button onClick={() => setNombres(`${nombres} nombres!`)}>
      click
    </button>
  );
}

function Nombres({ nombres }) {
  return (
    <pre>nombres: {nombres}</pre>
  );
}

React 是关于数据沿着组件树向下流动的,所以这意味着水平数据流是反模式的。如果您需要在两个或多个兄弟姐妹之间共享状态,解决方案是 lift your state up。这是什么意思?您应该将您的状态转移到包装所有兄弟姐妹的父组件,现在从您的包装器中通过 props 分发您的数据。