为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 useImperativeHandler 从 Parent 调用 Child

如何使用 useImperativeHandler 从 Parent 调用 Child

陪伴而非守候 2023-08-18 16:31:53
我有一个父组件,我需要调用其子组件的 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 函数从父级传递给子级

这两个按钮调用不同的方法,就像你想做的那样。

希望这是有道理的!

查看完整回答
反对 回复 2023-08-18
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

找到答案。userImperativeHandle 采用多个这样的方法,您可以在父组件中正常调用它们。


  useImperativeHandle(ref, () => ({

    methodOne: () => {

    },

    methodTwo: () => {

    }

  }));


查看完整回答
反对 回复 2023-08-18
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信