React Hook Form-Controller:从v5迁移到v6

时间:2020-10-27 09:44:46

标签: reactjs react-hook-form

我正在使用React Hook Form v5,这是Controller组件的语法:

<Controller as={Input}
   name="test"
   onChange={([_, value]) => value}
   onChangeName="onTextChange"
   onBlur={([_, value]) => value}
   onBlurName="onTextChange"
   valueName="textValue"
 />

这是RHF v6中Controller的语法:

 <Controller name="test"
   render={({ onChange, onBlur, value }) => {
     return <Input
       valueName={value}
       onTextChange={(val) => onChange(value)}
       onTextBlur={(val) => onBlur(value)}
     />
   }}
 />

问题是,升级后,旧的Controller仍然可以工作,我希望保留它们,因为当前代码中有很多它们,并且替换所有它们都将花费大量时间。这样做有什么大风险吗?

请给我一些建议,谢谢您的宝贵时间!

1 个答案:

答案 0 :(得分:0)

我建议您阅读变更日志。

https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md

Controller是从v5到v6的主要更改之一。

  • 我们仍然保留as道具,但删除了许多额外的道具
  • 我们引入了render道具以用于更多自定义用途

如果使用as的项目一切正常,我仍然建议删除那些未使用的道具。

  • onChange
  • onChangeName
  • onBlur
  • onBlurName
  • valueName