我正在使用React和react-hook-form库构建webapp。我想创建表单,其中一些字段的变化触发一些事件。因此我需要传递自定义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>
)
}如何将onChangeFirst传递给first输入,将onChangeFirst传递给second输入?
发布于 2021-06-10 16:46:35
有两种方法可以在输入更改时触发onChange。
1/带Controller组件(推荐)
const onChangeFirst = value => console.log('First:', value)
<Controller
control={control}
name="first"
render={({field}) => (
<input {...field} onChange={e => {
onChangeFirst(field.value);
field.onChange(e);
}} />
)}
/>2/带useWatch钩子
const second = useWatch({
control,
name: 'second'
});
useEffect(() => {
console.log('Second:', second)
}, [second])https://stackoverflow.com/questions/67917480
复制相似问题