美文网首页
React中父组件访问函数式子组件内部属性的方法

React中父组件访问函数式子组件内部属性的方法

作者: 西江月影 | 来源:发表于2020-12-03 14:45 被阅读0次

在之前的react开发中,我们可以直接通过ref访问类组件中的属性或调用类组件的成员方法。但是如果子组件是函数式组件,则其属性和方法不能通过ref 直接访问。对此,React也提供了响应的hooks来解决这个问题, 就是要搭配 forwardRef 和 useImperativeHandle 来一起使用实现这个效果。

import React, { useRef, useImperativeHandle } from 'react';
import ReactDOM from 'react-dom';

const FancyInput = React.forwardRef((props, ref) => {
  const inputRef = useRef();
  useImperativeHandle(ref, () => ({
    focus: () => {
      inputRef.current.focus();
    }
  }));

  return <input ref={inputRef} type="text" />
});

const App = props => {
  const fancyInputRef = useRef();

  return (
    <div>
      <FancyInput ref={fancyInputRef} />
      <button
        onClick={() => fancyInputRef.current.focus()}
      >父组件调用子组件的 focus</button>
    </div>
  )
}

ReactDOM.render(<App />, root);

相关文章

  • React中父组件访问函数式子组件内部属性的方法

    在之前的react开发中,我们可以直接通过ref访问类组件中的属性或调用类组件的成员方法。但是如果子组件是函数式组...

  • 父子传参

    在react中父子组件传参一 、父传子 子组件把值传给父组件在父组件中 其实可以把子组件里的方法用箭头函数,这样就...

  • React children用法

    1. react element作为child 2. 函数作为child 通过函数的方式子组件 .. 就能接收父组...

  • 2-8 vue全局属性

    vue全局属性 父子组件之间相互访问 在开发中,组件之间需要相互访问。比如:父组件访问子组件,子组件访问父组件,或...

  • Angular 父子组件声明与访问

    父组件不能使用数据绑定来读取子组件的属性或调用子组件的方法。 如果父组件要访问子组件的属性或者方法,可以通过设置模...

  • Vue组件实例间的直接访问

      有时候需要父组件访问子组件,子组件访问父组件,或者是子组件访问根组件,在组件实例中,Vue提供了相应的属性,包...

  • 9.父子组件

    父子组件:其实就是在父组件的内部的components属性中,注册组件,然后切记父组件中调用子组件?

  • react中父组件调用子组件的方法

    react中父组件调用子组件的方法 最近项目中用到了react,需要在父组件中调用子组件的某个方法,那么如何获取到...

  • react中调用子组件的方法

    class组件 父组件 子组件 react hook 父组件调用子组件方法 父组件 子组件

  • react 父子组件传值(兄弟传值)

    react中父子组件传值 父向子: 父组件通过自定义属性向子组件传值,子组件通过this.props.属性名接收子...

网友评论

      本文标题:React中父组件访问函数式子组件内部属性的方法

      本文链接:https://www.haomeiwen.com/subject/agpmwktx.html