react-父组件访问子组件中的方法和state(函数组件使用ref)

6 篇文章 0 订阅

函数组件中:父组件想要访问子组件中的方法和数据;

子组件使用forwardRef做转发,使用useImperativeHandle把方法暴漏出去,在父组件中即可访问到;

  • 子组件代码示例
import { useImperativeHandle, forwardRef } from 'react';
const Children = forwardRef((props, ref) => {
    useImperativeHandle(ref, () => ({
        getList: (params = {}) => {
        getDataList(params);
        },
    }));

    const getDataList = (params) => {
        console.log('父组件传入的参数:',params)
    }
}
  • 父组件代码示例
    import { useRef } from 'react';
    let ChildrenRef = useRef();
    const handleList = () => {
        tableRef.current.getList({value:'我是一个参数123'});
    }
    return (
        <div>
            <Children ref={ChildrenRef} />
            <button onClick={handleList}>调用子组件的方法</button>
        </div>
    )
React组件可以通过props和状态管理来获取组件的数据。 第一个引用展示了一个React组件的例,其组件Father定义了一个changeHandler函数,并将其绑定到组件Son的onChange属性上。通过这种方,当组件的值发生变化时,组件可以通过调用changeHandler函数获取组件的值。在组件的render方法,可以使用this.state获取组件的值。 另外一个引用也展示了一个获取组件数据的方法。在组件使用useRef来创建一个ref引用,然后使用useImperativeHandle来将ref暴露给组件。通过返回一个对象,组件可以通过ref.current来访问组件的属性和方法。在这个例组件可以通过ref.current.focus()来获取和操作组件的input元素。 综上所述,React组件可以通过props和状态管理、函数传递和ref引用等方获取组件的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [react组件如何获取组件的值](https://blog.csdn.net/Coralpapy/article/details/121827747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [React16.8组件获取组件数据的3](https://blog.csdn.net/kuangshp128/article/details/90483321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值