以前我常常这样写:
<input className="form-control" name="productImage" type='file' onChange={handleImageUpload} ref={register({ required: true })} />
更新后我不得不这样写:
<input className="form-control" type="file" {...register('productImage', { required: true })} />
如何在React Hook Form的更新版本上使用onChange={handleImageUpload}
?以下是docs迁移
请原谅我在提问方式上的错误。我对这些事情还不熟悉。谢谢。
7条答案
按热度按时间ghhaqwfi1#
https://github.com/react-hook-form/react-hook-form/releases/tag/v7.16.0
V7.16.0为自定义
onChange
引入了这个新的API。nx7onnlm2#
你只需要把
onChange
的 prop 移到{...register(...)}
后面**(2021年12月3日)编辑:**自react-hook-form v7.16.0's changes以来,这种方法不再正确,参见@Bill 's answer。
vulvrdjw3#
在
register
文档https://react-hook-form.com/api/useform/register中,示例位于Custom onChange, onBlur
部分:对于您的情况:
pieyvz9o4#
对我来说,装修方案奏效了
用于字段声明
chy5wohz5#
我也遇到了同样的问题。对我来说,问题是我的onChange在react-hook-form的**{... register}**之上,而把它移到register之下就解决了这个问题!!
eqfvzcg86#
我最近在迁移到V7时遇到了类似的问题。如果它能帮助任何人的话。
处理表单的父组件将register函数传递给 Package 器, Package 器将其再次传递给需要在更改时去抖动的输入。
我调用了寄存器
formLibraryRef
,以防我以后想使用不同的库,但总的来说,我必须这样做:const { onChange, ...rest } = formLibraryRef(inputName);
将onChange传递给函数,该函数本身传递给输入的本机onChange事件:
然后将剩余部分传递到输入:
此处文档中的
register
部分:https://react-hook-form.com/migrate-v6-to-v7/提供了更多关于如何获取onChange的信息,并显示了Missing ref
的示例。e5nqia277#
您可以使用react-hook-form control