以前我常常这样写:
<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窗体上使用onChange={handleImageUpload}?下面是迁移docs
请原谅我在提问方式上的错误。我对这些东西还很陌生。谢谢。
发布于 2021-10-05 10:29:52
https://github.com/react-hook-form/react-hook-form/releases/tag/v7.16.0
V7.16.0为自定义onChange引入了这个新的API。
<input
type="text"
{...register('test', {
onChange: (e) => {},
onBlur: (e) => {},
})}
/>发布于 2021-07-23 23:56:47
在register documentation https://react-hook-form.com/api/useform/register中,示例位于Custom onChange, onBlur部分:
// onChange got overwrite by register method
<input onChange={handleChange} {...register('test')} />
// register's onChange got overwrite by register method
<input {...register('test')} onChange={handleChange}/>
const firstName = register('firstName', { required: true })
<input
onChange={(e) => {
firstName.onChange(e); // method from hook form register
handleChange(e); // your method
}}
onBlur={firstName.onBlur}
ref={firstName.ref}
/>因此,对于你的情况:
const productImageRegister = register("productImage", {required: true})
<input className="form-control"
type="file"
{...productImageRegister }
onChange={e => {
productImageRegister.onChange(e);
handleImageUpload(e);
}} />发布于 2021-07-13 19:49:23
对我来说,装饰解决方案起作用了。
const fieldRegister = register("productImage", {required: true})
const origOnChange = fieldRegister.onChange
fieldRegister.onChange = (e) => {
const res = origOnChange(e)
const value = e.target.value
// do something with value
return res
}对于字段声明,使用
<input {...fieldRegister}/>https://stackoverflow.com/questions/66936135
复制相似问题