使用 onClick 将 state/props 发送到 React 中的另一个组件
Send state/props to another component in React with onClick
我有两个独立的组件,它们没有简单的父子关系。
ComponentFolderA
|
ButtonComponent
ComponentFolderB
|
BannerComponent
我想 setState
当用户点击按钮时将该值发送到 BannerComponent
解决这个问题的最佳方法是什么?
在父级中保留状态并将状态设置函数发送到您的 Button。
const Parent = () => {
const [myState, setMyState] = useState(false);
return (
<>
<BannerComponent myState={myState} />
<ComponentWithButton setMyState={setMyState} />
</>
)
}
const ComponentWithButton = props => {
return (
<Button onClick={() => props.setMyState(true)} />
)
}
在功能组件中,您可以在父组件中为 ButtonComponent 和 BannerComponent 创建状态。然后按照下面的例子做,
const Parent = () => {
const [sampleState, setSampleState] = useState(null);
return (
<>
<BannerComponent sampleState={sampleState} />
<ButtonComponent setSampleState={setSampleState} />
</>
)
}
然后您可以在 ButtonComponent 中访问 setSampleState 作为 prop。
另外,看看这个 and you can use a state manager (Context API, Redux)
我有两个独立的组件,它们没有简单的父子关系。
ComponentFolderA
|
ButtonComponent
ComponentFolderB
|
BannerComponent
我想 setState
当用户点击按钮时将该值发送到 BannerComponent
解决这个问题的最佳方法是什么?
在父级中保留状态并将状态设置函数发送到您的 Button。
const Parent = () => {
const [myState, setMyState] = useState(false);
return (
<>
<BannerComponent myState={myState} />
<ComponentWithButton setMyState={setMyState} />
</>
)
}
const ComponentWithButton = props => {
return (
<Button onClick={() => props.setMyState(true)} />
)
}
在功能组件中,您可以在父组件中为 ButtonComponent 和 BannerComponent 创建状态。然后按照下面的例子做,
const Parent = () => {
const [sampleState, setSampleState] = useState(null);
return (
<>
<BannerComponent sampleState={sampleState} />
<ButtonComponent setSampleState={setSampleState} />
</>
)
}
然后您可以在 ButtonComponent 中访问 setSampleState 作为 prop。
另外,看看这个