我有一个场景,我有多个网格,每个网格中可以有多行可以删除。
{
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确实支持嵌套对象,您只需要正确命名即可。