Mic*_*hal 15 javascript forms reactjs react-hook-form
我正在使用 React 和React-hook-form库构建 Web 应用程序。我想创建表单,其中某些字段的更改会触发某些事件。所以我需要通过自定义onChange
但是,从 v7.0 开始我无法使用,onChange因为register使用它自己的onChange.
import React from 'react'
import { useForm } from 'react-hook-form'
const MyForm = () => {
const form = useForm()
const onChangeFirst = value => console.log('First:', value)
const onChangeSecond = value => console.log('Second:', value)
return (
<form onSubmit={form.handleSubmit(vals => null)}>
<input {...register('first')} />
<input {...register('second')} />
</form>
)
}
Run Code Online (Sandbox Code Playgroud)
如何传递onChangeFirst到first输入和onChangeSecond输入second?
ngh*_*pit 25
输入变化时触发有两种方式onChange。
1/ 带控制器组件(推荐)
const onChangeFirst = value => console.log('First:', value)
<Controller
control={control}
name="first"
render={({field}) => (
<input {...field} onChange={e => {
onChangeFirst(field.value);
field.onChange(e);
}} />
)}
/>
Run Code Online (Sandbox Code Playgroud)
2/ 带有使用手表挂钩
const second = useWatch({
control,
name: 'second'
});
useEffect(() => {
console.log('Second:', second)
}, [second])
Run Code Online (Sandbox Code Playgroud)