React 父组件触发子组件事件

Parent组件

import React from "react";
import Child from "./component/Child";

class Parent extends React.Component {
  render() {
    return (
      <div>
        我是父组件
        <Child childEvevnt={this.childEvevnt} />
        <button onClick={this.triggerEvevt}>触发子</button>
      </div>
    );
  }
  // 此事件接收子对象
  childEvevnt = childDate => {
    this.$child = childDate;
  };
  // 父组件触发子组件的事件
  triggerEvevt = () => {
    this.$child.alertEvevnt();
  };
}

export default Parent;

Child组件

import React from "react";
class Child extends React.Component {
  render() {
    return <div>我是子组件</div>;
  }
  componentDidMount() {
    this.props.childEvevnt(this);
  }
  // 父组件要触发的事件
  alertEvevnt = () => {
    alert("父呼唤我呢!!");
  };
}
export default Child;

注意点:

1.使用箭头函数,小心this指向有差错

  ()=>  {  }

2.父组件通过props传参把子组件对象接收过来

   <Child childEvevnt={this.childEvevnt} />

3.子组件内部进行传递

  componentDidMount() {

    this.props.childEvevnt(this);

  }

4.父组件把接收过来的子对象绑定到父自定义事件上

  childEvevnt = childDate => {

    this.$child = childDate;

  };

5.父组件内部触发子组件的事件

  this.$child 上有了子组件的事件

6.触发

  triggerEvevt = () => {

    this.$child.alertEvevnt();

  };

原文地址:https://www.cnblogs.com/PengZhao-Mr/p/11002869.html

时间: 2024-10-07 05:47:11

React 父组件触发子组件事件的相关文章

vue--父组件向子组件传参--父组件定义v-bind:参数名--子组件接收props----子组件调用父组件的方法(子组件向父组件传参)父组件@事件名称--子组件接收this.$emit

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

父组件接收子组件事件的参数===子组件给父组件传值===子组件调用(绑定)父组件的方法

子组件调用(绑定)父组件的方法===父组件接收子组件事件的参数===子组件给父组件传值 就相当于父组件给子组件传递了一个方法,子组件触发这个方法,也就相当于父组件调用了这个方法 可以说是互相影响,数据双向绑定 子组件 <div @click="clickCell(参数)"> props:{ clickCell:{ type:Function, default: function(){} } } 父组件 <子组件名 :clickCell="dealClickC

react 父组件向子组件传递函数

这段时间一直在使用react,由于这react是单向数据绑定,总感觉有点不适用,毕竟之前一直都在使用angular,但学习还是要继续,做了一个迭代的项目,都差点忘记要总结一下这个react了,现在可以写点东西了.(react 新手,仅仅参考) 1.react一开始我更理解为是一个各种代码片段,由于之前接触了一段时间meteor,感觉有点相似.在使用之前都要在app.js中将一总的父组件通过import导入,另外在route中的path中写入链接 例如:import createHistory f

React Hook父组件获取子组件的数据/函数

我们知道在react中,常用props实现子组件数据到父组件的传递,但是父组件调用子组件的功能却不常用.文档上说ref其实不是最佳的选择,但是想着偷懒不学redux,在网上找了很多教程,要不就是hook的讲的太少,要不就是父子组件傻傻分不清,于是只好再啃了一下文档,就学了一下其它hook的api. 在这里我们需要用到useImperativeHandle这个api,其函数形式为 useImperativeHandle(ref, createHandle, [deps]) 其实这个api也是ref

react ,父子调用子组件的方法与子组件调用父组件的方法

1.父组件调用子组件的方法给子组件的标签 定义一个属性,例如 ref="zizu" ------------- 父组件通过,this.refs.biaoji.dream('哈哈') //调用子组件的dream方法 2.子组件调用父组件的方法 2.1.首先父组件需要通过给子组件自定义属性,把方法传递给子组件.2.2.子组件通过this.props 接收父组件的方法,this.props.方法名称().这样就可以调用父组件的方法了 原文地址:https://www.cnblogs.com/

vue学习之父组件与子组件之间的交互

1.父组件数据传给子组件 父组件中的msgfather定义数据 在之组件中通过设置props来取得希望从父组件中获得的值 通过设置这两个属性就可以从父组件传数据到子组件 2.子组件传数据给父组件(这里只介绍$emit) 触发child-tell-me事件,并传参 "this is child message!" 在父组件会找到child-tell-me方法并执行.

vue2.0父组件与子组件之间的通信

vue是一个轻量级的渐进式框架,对于它的一些特性和优点包括环境的一些配置在此就不做赘述,本篇文章主要来探讨一下vue子父组件之间通信的问题 首先我们先来看一个demo,目录结构为这样: ?src        ?components          ?child.vue ?app.vue 此时App.vue应为这样: 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child.vue中创建props,然后创建一个名为message

Vue父组件向子组件传递方法(自定义方法)并且子组件向父组件传递数据

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

vue中父组件向子组件传值(方法)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>父组件把方法传递给子组件</title> <script src="./vue2.6.9.js"></script> </head> <body> <div id="app&