当前位置: 首页 > 知识库问答 >
问题:

将myRef转换为钩子版本

郑正阳
2023-03-14

我找到了这个答案:ReactJS和自动对焦

但是我不知道如何转换这个:

constructor(props) {
    super(props);
    this.myRef = React.createRef();
}

componentDidMount(){
  this.myRef.current.focus();
}

<input type="text"  ref={this.myRef} />

作出反应。

我试着这样做:

const myRef = () => {
  React.createRef().current.focus();
}

<input type="text"  ref={myRef} />

但有一个错误:

TypeError: Cannot read property 'focus' of null

共有1个答案

靳高明
2023-03-14

除了useRef之外,还需要使用渲染后运行的useffect[]表示它只运行一次。

import React, { useRef, useEffect } from 'react';

function Component() {

  const ref = useRef(null);

  useEffect(() => {
    ref.current.focus();
  }, []);

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

}
 类似资料:
  • 版本库钩子

  • 我有以下方法: 作为参数,我输入一个句子。如果句子长于5个单词,我只希望打印出前5个单词。发生的情况是 [word1、word2、word3、word4、word5] 我希望它看起来像是: word1 word2 word3 word4 word5 关于如何将数组转换为后一个示例中的正常句子格式,有什么建议吗?

  • 通过钩子扩展,GitHub托管的版本库可以和外部应用实现整合。整合的接口完全开放,开发者可以访问GitHub的开源项目 github/github-services 开发新的应用整合脚本。目前GitHub已经支持超过50个外部应用的整合,在这里恕不一一列举,仅以helloworld项目为例,介绍几个常见应用的整合。 3.4.1. 邮件通知功能 配置邮件通知,可以实现新提交推送至版本库时,发送通知邮

  • 我理解超类/子类之间的关系以及强制转换是如何工作的。但是,我的问题是,如果知道中间有一个类,你能把一个超类转换成一个特定的子类吗?例如,如果我有一个动物类对象包含一个BigDog对象,我可以将该对象强制转换为Dog吗?如果BigDog中有Dog中不存在的方法怎么办? 简而言之,你当然可以说超类对象是子类对象,但为什么你可以反转呢? 转念一想, Java在调用方法时检查的是:引用(DOG)是否有引用

  • 我想使用wordpress在我的网站上添加变体 我尝试了很多插件,但它们不能满足我的要求。 要求: 我想根据给定的变化变化价格: 任何人都可以引用插件或函数?

  • 钩子和行为 ThinkPHP中的行为是一个比较抽象的概念,你可以把行为想象成在应用执行过程中的一个动作。在框架的执行流程中,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测、多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第一次访问弹出Hello,world!这些都可以看成是一种行为,把这些行为抽离出来的目的是为了让你无需改动框架和应用