You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React使用useRef调用focus报Cannot read properties of undefined如何解决

错误原因

  • 你没有调用useRef Hook,而是直接将函数本身赋值给了elementRef,导致elementRef不是合法的ref实例,current属性为undefined,调用focus方法自然触发类型错误。
  • 普通div元素默认不具备聚焦能力,即使拿到正确的DOM实例调用focus也不会生效,需要额外配置tabIndex属性。

修复代码

import { useRef, useEffect } from 'react';

function CustomComponent() {
  // 调用useRef创建ref实例,初始值设为null
  const elementRef = useRef(null);
   useEffect(() => {
    const divElement = elementRef.current;
    // 增加非空判断避免边界场景报错
    if (divElement) {
      divElement.focus();
    }
  }, []);
  return (
    {/* 增加tabIndex属性让div支持聚焦,-1表示仅支持JS触发聚焦 */}
    <div ref={elementRef} tabIndex={-1}>
      I'm an element
    </div>
  );
}

额外说明

如果需要让该div可以通过键盘tab键切换聚焦,将tabIndex的值设置为大于等于0的整数即可,数值越小优先级越高。

内容的提问来源于stack exchange,提问作者ttsgcgiaibxhpgcowj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:27:04