首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-hook-form中的onChange输入

react-hook-form中的onChange输入
EN

Stack Overflow用户
提问于 2021-06-10 16:27:54
回答 1查看 2.6K关注 0票数 2

我正在使用React和react-hook-form库构建webapp。我想创建表单,其中一些字段的变化触发一些事件。因此我需要传递自定义onChange

但是,从v7.0开始,我就不能使用onChange了,因为register使用了自己的onChange

代码语言:javascript
复制
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输入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 16:46:35

有两种方法可以在输入更改时触发onChange

1/带Controller组件(推荐)

代码语言:javascript
复制
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钩子

代码语言:javascript
复制
 const second = useWatch({
    control,
    name: 'second'
 });

 useEffect(() => {
   console.log('Second:', second)
 }, [second])
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67917480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档