如何使用React Hooks从子组件onClick()触发父组件中的事件?

瓦姆西

以下是我在React Hooks中的代码:

我有三个React功能组件Parent,Child1,Child2。我想单击Child2组件中的一个按钮,它应该在Parent组件中调用一个函数。如何实现呢?

function Child2({Open, close, events, onEvent}) {

const passEventToParent = () {
// callback to parent using onEvent
}

<Button onClick={passEventToParent}>

}

function Child1({open, close, events, onEvent}) {
<Child2 />

}

function Parent({open, close, events, onEvent}) {

// I want call below function based on the button clicked in Child2 React functional component
runEvent();

<Child1 />

}
马特·奥斯特里希(Matt Oestreich)

下面的示例演示如何通过组件传递事件。这个例子很简单,但是如果您有任何疑问,请告诉我。

如果您不想处理“链接”事件,而不必通过组件传递它们,则可以深入研究Context APIReact Redux,因为它们都具有“全局”状态和处理程序(也称为reducers)概念。

const { render } = ReactDOM;

/**
 * Child2
 */
function Child2({ Open, close, events, onChild2Event }) {
  const handleEvent = event => {
    // Pass event to caller via the onChild2Event prop.
    // You can do something with the event, or just pass it.
    console.log("1. Event fired in Child2! Doing something with event before passing..");
    onChild2Event(event);
  };

  return <button onClick={handleEvent}>Child 2 Button</button>;
}


/**
 * Child1
 */
function Child1({ open, close, events, onChild1Event }) {
  const handleEvent = event => {
    // Pass event to caller via the onChild1Event prop.
    // You could so something with the event or just pass it again.
    console.log("2. Event fired in Child1! Doing something with event in Child1..");
    onChild1Event(event);
  };

  return <Child2 onChild2Event={handleEvent} />;
}


/**
 * Parent
 */
function Parent({ open, close, events }) {
  // ~~ This is the "final function" you wish to invoke when Child2 button is clicked ~~
  const functionToInvokeInParent_WhenChild2ButtonIsClicked = () => {
    console.log("   -- I am the final function you wish to invoke in Parent, when Child2 button is clicked!");
  }
  
  const handleEvent = event => {
    // Handle event in Parent which originated from Child2
    console.log("3. **Handling event in Parent! About to invoke the function you wish to call in Parent:**");
    functionToInvokeInParent_WhenChild2ButtonIsClicked();
  };

  return (
    <div>
      <p>Open your console, then click the button below.</p>
      <Child1 onChild1Event={handleEvent} />
    </div>
  );
}

render(<Parent />, document.body);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.10.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.10.2/umd/react-dom.production.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从子组件调用父组件中的事件?

来自分类Dev

尝试从子组件React Hooks更改父级中的状态

来自分类Dev

从子组件触发一个函数并在 React Native 的父组件中定义

来自分类Dev

如何从子组件在父组件中渲染路线组件

来自分类Dev

如何使用事件发射器在子组件和父组件中触发功能?

来自分类Dev

如何在Vuejs 3中使用渲染功能从子组件触发父组件上的方法

来自分类Dev

如何从Angular 2中的子组件事件触发父组件中的本地引用?

来自分类Dev

如何从Angular 2中的子组件事件触发父组件中的本地引用?

来自分类Dev

如何在Angular 9中从子组件访问父组件

来自分类Dev

如何使用钩子从子组件中重新渲染父对象?

来自分类Dev

如何从子组件更改父组件的状态?

来自分类Dev

如何从子组件更改父组件的变量

来自分类Dev

如何从子组件更改父组件的状态?

来自分类Dev

在React中,如何将参数从子组件传递到父组件?

来自分类Dev

如何在父Vue中触发组件?

来自分类Dev

在React中访问父组件的方法onClick

来自分类Dev

使用UseState React Hook从子组件更新父组件状态

来自分类Dev

酶/摩卡:如何通过从子组件触发onChange事件来测试反应组件功能

来自分类Dev

酶/摩卡:如何通过从子组件触发onChange事件来测试反应组件功能

来自分类Dev

如何在 React Hooks 中触发从子级到父级的状态变化?

来自分类Dev

如何从子组件向父组件发送价值?(功能组件)

来自分类Dev

如何确定哪个组件在React中触发事件处理程序?

来自分类Dev

如何确定哪个组件在React中触发事件处理程序?

来自分类Dev

如何使用React Router从子组件到父组件进行通信

来自分类Dev

React JS:从子对象渲染父组件

来自分类Dev

从子组件在父组件中运行函数 - 没有 Redux 的 React Navigator 屏幕

来自分类Dev

如何从子窗体触发父窗体事件?

来自分类Dev

如何从子组件获取表单中的数据并将其传递回父组件?

来自分类Dev

如何在Angular4中将数据从子组件传递到父组件

Related 相关文章

  1. 1

    如何从子组件调用父组件中的事件?

  2. 2

    尝试从子组件React Hooks更改父级中的状态

  3. 3

    从子组件触发一个函数并在 React Native 的父组件中定义

  4. 4

    如何从子组件在父组件中渲染路线组件

  5. 5

    如何使用事件发射器在子组件和父组件中触发功能?

  6. 6

    如何在Vuejs 3中使用渲染功能从子组件触发父组件上的方法

  7. 7

    如何从Angular 2中的子组件事件触发父组件中的本地引用?

  8. 8

    如何从Angular 2中的子组件事件触发父组件中的本地引用?

  9. 9

    如何在Angular 9中从子组件访问父组件

  10. 10

    如何使用钩子从子组件中重新渲染父对象?

  11. 11

    如何从子组件更改父组件的状态?

  12. 12

    如何从子组件更改父组件的变量

  13. 13

    如何从子组件更改父组件的状态?

  14. 14

    在React中,如何将参数从子组件传递到父组件?

  15. 15

    如何在父Vue中触发组件?

  16. 16

    在React中访问父组件的方法onClick

  17. 17

    使用UseState React Hook从子组件更新父组件状态

  18. 18

    酶/摩卡:如何通过从子组件触发onChange事件来测试反应组件功能

  19. 19

    酶/摩卡:如何通过从子组件触发onChange事件来测试反应组件功能

  20. 20

    如何在 React Hooks 中触发从子级到父级的状态变化?

  21. 21

    如何从子组件向父组件发送价值?(功能组件)

  22. 22

    如何确定哪个组件在React中触发事件处理程序?

  23. 23

    如何确定哪个组件在React中触发事件处理程序?

  24. 24

    如何使用React Router从子组件到父组件进行通信

  25. 25

    React JS:从子对象渲染父组件

  26. 26

    从子组件在父组件中运行函数 - 没有 Redux 的 React Navigator 屏幕

  27. 27

    如何从子窗体触发父窗体事件?

  28. 28

    如何从子组件获取表单中的数据并将其传递回父组件?

  29. 29

    如何在Angular4中将数据从子组件传递到父组件

热门标签

归档