Javascript 如何从React中的另一个同级组件触发同级组件函数?

Javascript 如何从React中的另一个同级组件触发同级组件函数?,javascript,reactjs,Javascript,Reactjs,在React中,我有一个父组件和三个同级组件,例如: <div> <Component1/> <Component2/> <Buttons/> </div> 我想从组件触发和中定义的函数。目前我正在使用useImperialiveHandle和forwardRef从和导出函数,并通过道具将它们传递给组件 这是可行的,但似乎不是最好的方法。如果我不想将和函数和状态处理移动到父组件,那么建议使用哪种反应模式来执行此操

在React中,我有一个父组件和三个同级组件,例如:

<div>
   <Component1/>
   <Component2/>
   <Buttons/>
</div>

我想从
组件触发
中定义的函数。目前我正在使用
useImperialiveHandle
forwardRef
导出函数,并通过
道具将它们传递给
组件


这是可行的,但似乎不是最好的方法。如果我不想将
函数和状态处理移动到父组件,那么建议使用哪种反应模式来执行此操作?

我会建议将状态移动到父组件,但由于您不愿意,因此可以使用带有挂钩的上下文

创建上下文

export const AppContext=React.createContext()

在需要时使用它(导入上下文并使用上下文优先)

const{state,dispatch}=useContext(AppContext)


官方文档:

这感觉比UseImportiveHandle和forwardRef魔术更令人讨厌,尽管如此,我发现答案很有用——我不知道(ab)使用带有挂钩的上下文有多容易。