zoukankan      html  css  js  c++  java
  • react 父组件调用子组件中的方法

    组件间通信除了props外还有onRef方法,不过React官方文档建议不要过度依赖ref。

    //父组件
    import React, { Component } from "react";
    import Child from "./Child";
    
    class Dad extends Component {
        constructor(props) {
            super(props);
            this.state = {
                arr:["暴富","暴瘦"],
                txt:"我是尼爸爸"
            }
        }
    
        onRef=(ref)=>{
            this.Child=ref;
        }
    
        click=()=>{
            this.Child.childFn();
        }
    
        render() {
            return (
                <div>
                    <Child onRef={this.onRef}></Child>
                    <button onClick={this.click}>父组件调用子组件中的方法</button>
                </div>
            )
        }
    }
    
    export default Dad;
    
    //子组件
    import React, { Component } from "react";
    
    class Child extends Component {
        constructor(props){
            super(props);
        }
    
        componentDidMount() {
            this.props.onRef(this)
        }
    
        childFn=()=>{
            console.log("我是子组件中的方法")
        }
    
        render() {
            return (
               <div>
               </div>
            )
        }
    }
    
    export default Child;

    原理:

    当在子组件中调用onRef函数时,正在调用从父组件传递的函数。this.props.onRef(this)这里的参数指向子组件本身,父组件接收该引用作为第一个参数:onRef = {ref =>(this.child = ref)}然后它使用this.child保存引用。之后,可以在父组件内访问整个子组件实例,并且可以调用子组件函数。

  • 相关阅读:
    sql 中 in 与 exist 的区别
    with as (cte common table expression) 公共表表达式
    配置连接数据库的方式
    Dispose 与 close 方法 的区别
    抽象类
    default
    什么叫无符号整型
    hdu 5187 zhx's contest [ 找规律 + 快速幂 + 快速乘法 || Java ]
    poj 2480 Longge's problem [ 欧拉函数 ]
    lightoj 1293
  • 原文地址:https://www.cnblogs.com/ranyonsue/p/14582449.html
Copyright © 2011-2022 走看看