Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将默认值设置为useFieldArray中的控制器_Reactjs_React Hook Form - Fatal编程技术网

Reactjs 将默认值设置为useFieldArray中的控制器

Reactjs 将默认值设置为useFieldArray中的控制器,reactjs,react-hook-form,Reactjs,React Hook Form,误解是一种形式 我有一个表格可以编辑一些东西。表单包含字段数组。 我使用默认值在UseFormHook中设置初始formData const methods = useForm({ defaultValues: defaultValues }); 其中defaultValues是 const defaultValues = { test: [ { name: "useFieldArray1" }, { name: &quo

误解是一种形式

我有一个表格可以编辑一些东西。表单包含字段数组。 我使用默认值在UseFormHook中设置初始formData

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>