从v7开始,react-hook-forms就不再使用refs了,我一直在尝试让我的表单动态化,从json文件中获取字段属性,但是useForm的注册表每次都给我一个类型问题。
const {register , and so on..}= useForm({defaultvalues : {A:a,B:b, and so on..}})
...
{fields.map(f,i)=>
<TextField id={f.id} ..and so on..
{...register(`${f.id}` as const)} //error
/>}
错误为:
type string is not assignable to parameter of type '"A"|"B"| and so on'. ts2345
f.id 返回的值与他们在那里想要的值相同,但我无法解决这个问题。
2条答案
按热度按时间sycxhyv71#
我遇到了同样的问题。试着为你的寄存器名建立和你的对象一样的结构。例如,如果你有这个对象:
然后如果你想绘制这个图,建立你的表,就像这样做。
qyswt5oh2#
您可以使用react-hook-form提供的类型来代替
as const
。在“React-钩形”之前:“^7.41.0”
从“React-钩形”开始:“^7.41.0”
当然,register 函数类型具有您为表单定义的泛型类型
UseFormRegister<FormInputs>
,例如: