Reactjs 将默认值设置为useFieldArray中的控制器
误解是一种形式 我有一个表格可以编辑一些东西。表单包含字段数组。 我使用默认值在UseFormHook中设置初始formDataReactjs 将默认值设置为useFieldArray中的控制器,reactjs,react-hook-form,Reactjs,React Hook Form,误解是一种形式 我有一个表格可以编辑一些东西。表单包含字段数组。 我使用默认值在UseFormHook中设置初始formData const methods = useForm({ defaultValues: defaultValues }); 其中defaultValues是 const defaultValues = { test: [ { name: "useFieldArray1" }, { name: &quo
const methods = useForm({ defaultValues: defaultValues });
其中defaultValues是
const defaultValues = {
test: [
{
name: "useFieldArray1"
},
{
name: "useFieldArray2"
}
]
};
和现场阵列。这里我使用的是控制器(它是简化的案例-事实上自定义输入控制器更复杂)
{fields.map((项,索引)=>{
返回(
-
}
/>
删除(索引)}>
删除
);
})}
当呈现形式时,一切都很好。默认值显示在输入字段中。但当我删除所有字段并单击“附加”时,新字段不是空的。。。将显示默认值
再一次。这只发生在控制器上。为什么会这样?我怎样才能避免呢
请,这里是代码沙盒链接。删除输入,然后按“附加”复制我所说的内容
谢谢我想你应该使用Controller的
defaultValue
。我想你应该使用Controller的defaultValue
。
<ul>
{fields.map((item, index) => {
return (
<li key={item.id}>
<Controller
name={`test[${index}].name`}
control={control}
render={({value, onChange}) =>
<input onChange={onChange} defaultValue={value} />}
/>
<button type="button" onClick={() => remove(index)}>
Delete
</button>
</li>
);
})}
</ul>