【发布时间】:2020-12-26 23:58:29
【问题描述】:
如何使用 React-Hook-Form 在输入中实现设置焦点,这是他们的常见问题解答“如何共享参考使用”代码https://www.react-hook-form.com/faqs/#Howtosharerefusage
import React, { useRef } from "react";
import { useForm } from "react-hook-form";
export default function App() {
const { register, handleSubmit } = useForm();
const firstNameRef = useRef();
const onSubmit = data => console.log(data);
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input name="firstName" ref={(e) => {
register(e)
firstNameRef.current = e // you can still assign to ref
}} />
<input name="lastName" ref={(e) => {
// register's first argument is ref, and second is validation rules
register(e, { required: true })
}} />
<button>Submit</button>
</form>
);
}
我尝试在 useEffect 中设置焦点,但它不起作用:
useEffect(()=>{
firstNameRef.current.focus();
},[])
在输入内部也没有:
<input name="firstName" ref={(e) => {
register(e)
firstNameRef.current = e;
e.focus();
}} />
【问题讨论】:
-
你能在代码盒中重现这个吗?
-
您的示例运行良好。