react中input自动聚焦问题,使用函数组件,并且,在值的后面
时间: 2024-05-07 14:23:24 浏览: 220
前端React中函数式hooks组件中关于ref使用介绍,以及forwardRef 与 useImperativeHand详解
可以使用React的`useRef`钩子来实现自动聚焦。首先,在函数组件中声明一个ref变量:
```javascript
const inputRef = useRef(null);
```
然后,将该ref变量传递给input元素的ref属性:
```javascript
<input type="text" ref={inputRef} value={value} onChange={handleChange} />
```
最后,使用`useEffect`钩子在组件渲染时自动聚焦input元素:
```javascript
useEffect(() => {
inputRef.current.focus();
}, []);
```
如果你想在输入框中显示默认值并将光标放在值的后面,则可以在`useEffect`中设置input元素的selectionStart和selectionEnd属性:
```javascript
useEffect(() => {
inputRef.current.focus();
inputRef.current.selectionStart = inputRef.current.selectionEnd = inputRef.current.value.length;
}, []);
```
这将将光标放在输入框的值的末尾。
阅读全文