使用onClick将状态/道具发送到React中的另一个组件

问题描述

我有两个单独的组件,它们没有简单的父子关系。

svg {
    width: inherit;
    height: inherit;
}

用户单击按钮并将其值发送到ComponentFolderA | ButtonComponent ComponentFolderB | BannerComponent 时,我想setState

解决这个问题的最佳方法是什么?

解决方法

在功能组件中,可以在父组件中为ButtonComponent和BannerComponent创建状态。然后执行以下示例,

const Parent = () => {
    const [sampleState,setSampleState] = useState(null);

    return (
      <>
          <BannerComponent sampleState={sampleState} />
          <ButtonComponent setSampleState={setSampleState} />
      </>
    )
}

然后,您可以在ButtonComponent内部作为道具访问setSampleState。

另外,请检查Best practice way to set state from one component to another in React,然后可以使用状态管理器(Context APIRedux

,

保持父状态,并将状态设置功能发送给您的按钮。

const Parent = () => {
  const [myState,setMyState] = useState(false);
  
  return (
    <>
      <BannerComponent myState={myState} />
      <ComponentWithButton setMyState={setMyState} />
    </>
  )
}

const ComponentWithButton = props => {
  return (
    <Button onClick={() => props.setMyState(true)} />
  )
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...