温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

react hooks中父子组件如何互相调用

发布时间:2022-02-24 17:34:29 来源:亿速云 阅读:898 作者:iii 栏目:开发技术

本篇内容主要讲解“react hooks中父子组件如何互相调用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react hooks中父子组件如何互相调用”吧!

1、子组件调用父组件函数方法

对于这个方法我们来看看下面这个相关的代码:

父组件代码部分:

//父组件
let Father=()=>{
    let getInfo=()=>{
        
    }
    return ()=>{
        <div>
            <Children 
                getInfo={getInfo}
            />
        </div>
    }
}

子组件代码部分:

//子组件
let Children=(param)=>{
    return ()=>{
        <div>
            <span onClick={param.getInfo}>调用父组件函数</span>
        </div>
    }
}

在两个代码中,我们通过在父组件中声明一个函数,在子组件中进行一个调用使用,可以向父组件传参,刷新父组件的信息。

2、父组件调用子组件函数方法

在这个方法下,我们通过下面的代码来进行了解:

父组件代码部分:

//父组件
//需要引入useRef
import {useRef} from 'react'
let Father=()=>{
    const childRef=useRef();
    let onClick=()=>{
        childRef.current.getInfo();
    }
    return ()=>{
        <div>
            <Children 
                ref={childRef}
            />
            <span onClick={onClick}>调用子组件函数</span>
        </div>
    }
}

子组件代码部分:

//子组件 
//需要引入useImperativeHandle,forwardRef
import {useImperativeHandle,forwardRef} from 'react'
let Children=(ref)=>{
    useImperativeHandle(ref, () => ({
        getInfo:()=>{
            //需要处理的数据
        }
    }))
    return ()=>{
        <div></div>
    }
}
Children = forwardRef(Children);

在代码中我们可以很清楚的知道调用的方法和步骤,但是使用useImperativeHandle 我们是需要配合着 forwardRef 使用,要不就会出现以下警告:

Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?

到此,相信大家对“react hooks中父子组件如何互相调用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI