如何在 react-hook-form fieldArray 中保留隐藏字段?

How to preserve hidden fields in react-hook-form fieldArray?

我正在尝试基于对象数组构建表单列表,这些对象具有应该能够被编辑并呈现为输入的字段,以及不需要呈现的只读字段, 例如 id.

我通过使用 useFieldArray 钩子来做到这一点。但是,react hook 似乎只保存那些注册为输入的字段,这导致我的 id 字段在提交处理程序中丢失。

如何保留我的只读字段?

Here的沙盒示例,这样你就明白我在说什么了。 我将 id 添加到默认值和附加的值。当您点击提交时,id 不再存在。

对您不想向用户显示的字段(如用户 ID)使用 <input type='hidden' />,然后正常注册。因此,在您的代码中,您应该像这样为 id 添加另一个输入:

<input type="hidden" {...register(`test[${index}].useId`)} />

这就像你设置display: none时一样,但字段值仍然被提交。

现场演示