react父子组件传值

本文详细介绍了在React中如何进行父子组件之间的数据传递。首先展示了最基础的父组件通过props向子组件传递数据的方法,然后通过`forwardRef`和`useImperativeHandle`讲解了如何实现子组件向父组件传递值,包括调用子组件方法的场景。实例清晰,有助于理解React组件间的通信机制。
摘要由CSDN通过智能技术生成

react父子组件传值

首先父传子组件

最原始的props获取

父组件

import React, { useRef, memo, useMemo, useCallback, useState } from 'react';
import Add from "./page/add"
export default function Home() {
    const paData = useRef('11')
    return (
        <>
            <Add paData={paData}></Add>   
        </>
    )
}

子组件
直接props就可以获取

import React, { useRef, memo, useMemo, useCallback, useState, forwardRef,useImperativeHandle } from 'react';
const Home = (props,ref) => {
	    console.log(props.paData.current, 'w1');
    return (
      <>
        </>
    )

})
export default Home
子传父

借助forwardRef,useImperativeHandlehook来传值
父组件

import React, { useRef, memo, useMemo, useCallback, useState } from 'react';
import Add from "./page/add"
export default function Home() {
    const fun = () => {
        console.log(changea.current.focus, '51223');
    }
    return (
        <>
            <Add ></Add>
             <div onClick={fun}>+1</div>
        </>
    )

}

子组件

import React, { useRef, memo, useMemo, useCallback, useState, forwardRef, useImperativeHandle } from 'react';
const Home = forwardRef((props, ref) => {
    useImperativeHandle(ref, () => ({
        focus: () => {
            chaneV.current.focus();
            console.log(2);
        }
    }))
    return (
        <>
            <div>子点击事件</div>
            <button onClick={chaneV}>+1</button>
            {console.log(chDa)}
            <div>{chDa}</div>
        </>
    )

})

在这里插入图片描述

a是ref绑定的 ,a.current.focusfocus是子组件中的方法 这样就可以直接通过 绑定值.current.方法名来调用子组件中的方法,然后子组件的第二个参数名也应该是a
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜鸟学代码··

给打赏的我会单独一对一讲解

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值