当前位置:首页 > React

react如何让输入框聚焦

2026-01-25 20:05:24React

使用 ref 和 useRef 钩子

在 React 中,可以通过 useRef 钩子创建一个 ref 对象,并将其绑定到输入框的 ref 属性上。通过调用 ref 对象的 current.focus() 方法,可以让输入框获得焦点。

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

function FocusInput() {
  const inputRef = useRef(null);

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

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

在类组件中使用 createRef

如果是类组件,可以使用 React.createRef() 创建 ref,并在 componentDidMount 生命周期方法中调用 focus()

import React from 'react';

class FocusInput extends React.Component {
  constructor(props) {
    super(props);
    this.inputRef = React.createRef();
  }

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

  render() {
    return <input ref={this.inputRef} type="text" />;
  }
}

通过事件触发聚焦

可以通过按钮点击或其他事件触发输入框的聚焦。将 ref 绑定到输入框,并在事件处理函数中调用 focus()

import React, { useRef } from 'react';

function FocusInput() {
  const inputRef = useRef(null);

  const handleClick = () => {
    inputRef.current.focus();
  };

  return (
    <div>
      <input ref={inputRef} type="text" />
      <button onClick={handleClick}>Focus Input</button>
    </div>
  );
}

自动聚焦表单中的下一个输入框

在表单中,可以通过监听 onKeyDown 事件,在按下回车键时自动聚焦到下一个输入框。

import React, { useRef } from 'react';

function FormWithAutoFocus() {
  const input1Ref = useRef(null);
  const input2Ref = useRef(null);

  const handleKeyDown = (e, nextRef) => {
    if (e.key === 'Enter') {
      nextRef.current.focus();
    }
  };

  return (
    <div>
      <input
        ref={input1Ref}
        type="text"
        onKeyDown={(e) => handleKeyDown(e, input2Ref)}
      />
      <input ref={input2Ref} type="text" />
    </div>
  );
}

使用 forwardRef 传递 ref

如果需要将 ref 传递给自定义组件,可以使用 React.forwardRef 包装组件,确保 ref 能够正确传递到内部的输入框。

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

const CustomInput = forwardRef((props, ref) => {
  return <input ref={ref} type="text" {...props} />;
});

function FocusInput() {
  const inputRef = useRef(null);

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

  return <CustomInput ref={inputRef} />;
}

react如何让输入框聚焦

标签: 输入框react
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。…

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…

react 如何遍历

react 如何遍历

遍历数组 在React中遍历数组通常使用map方法,它会返回一个新的数组。map是处理数组并渲染列表元素的首选方法。 const items = ['Apple', 'Banana', 'Cherr…