以react-hook-form形式输入onChange

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)

如何传递onChangeFirstfirst输入和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)