在嵌套对象中使用最终形式数组



我有一个场景,我有多个网格,每个网格中可以有多行可以删除。

{ 
document: [{
rows: [{
make: "Tesla"
}]
}

我想用这种方式做一些类似<FieldArray name="document[0]">的事情,我可以为网格提供添加和删除功能,但fieldarray似乎只接受单个节点。有没有办法解决这个问题,或者我做错了什么?

最初我有document1: { [{...fields}] },所以useField看起来像这样:

useField(`${fieldKey}${fieldIndex}[${rowIndex}].${field}`)

但由于ag网格和单元级验证的问题,我想使用yup模式验证,所以我认为如果我使用通用密钥会更容易。

fields.removeBatch(gridApi.getSelectedNodes().map(({ rowIndex }) => rowIndex));

原来我使用了错误的路径。我需要使用

<FieldArray name={`${fieldKey}.${fieldIndex}.rows`}>

这与新结构相匹配。所以FieldArray确实支持嵌套对象,您只需要正确命名即可。

相关内容

  • 没有找到相关文章