React.forwardRef

React.forwardRef是一个函数,它允许你将refs转发给函数式组件的内部元素。在React中,ref通常是在类组件中使用的特殊属性,它提供了对DOM节点或React元素的引用。然而,在函数式组件中,无法直接访问refs。

React.forwardRef函数接收一个渲染函数作为参数,并返回一个能够接收ref的函数式组件。这样,父组件就可以将ref传递给函数式组件,然后函数式组件可以选择性地将这个ref绑定到内部的某个元素上。

例如:

// 子组件
import React from 'react';
const PasscodeInput = memo(
  React.forwardRef(({ onChange }, ref) => {


    useImperativeHandle(ref, () => ({

      changeInput: (val) => {
        changeHandle(val); 
      },

      // 暴露给父组件,获取焦点时间
      getFocus: () => {
        inputRef.current.focus();
      },
    }));
}


//父组件
import PasscodeInput from './PasscodeInput'

const BindPhone = ({ navigation, route }) => {

     const Passcode = useRef(null)
      // Passcode.current.getFocus()   调用子组件的方法
      
    return (<PasscodeInput onChange={getCode} ref={Passcode} />)
})

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值