我有一个父组件,我需要调用其子组件的 2 个方法。我可以使用 useImperativeHandler 来调用一个像const Parent = () => { const childRef = useRef(); return ( <div> <Child ref={childRef} /> <Button onClick={() => childRef.current.methodOne()}> Submit </Button> </div> );};然后在子组件中const Child = forwardRef((props, ref) => { useImperativeHandle( ref, () => ({ methodOne() { // some code }, }), [] ); return;});到目前为止,效果非常好。但我希望父组件中的另一个按钮可以调用同一个子组件中的第二个方法(我们称之为 methodTwo)。我该怎么做?
2 回答

慕盖茨4494581
TA贡献1850条经验 获得超11个赞
检查这个例子,我试图让它变得简单易懂,但如果你遇到麻烦,我什至很乐意帮助你进行缩放通话
这是react中的基本概念,将方法从父级传递给子级
在此示例中,我将 console.log 函数从父级传递给子级
这两个按钮调用不同的方法,就像你想做的那样。
希望这是有道理的!

慕哥9229398
TA贡献1877条经验 获得超6个赞
找到答案。userImperativeHandle 采用多个这样的方法,您可以在父组件中正常调用它们。
useImperativeHandle(ref, () => ({
methodOne: () => {
},
methodTwo: () => {
}
}));
添加回答
举报
0/150
提交
取消