Использование final-form-array во вложенном объекте

У меня есть сценарий, в котором у меня есть несколько сеток, и в каждой сетке может быть несколько строк, которые можно удалить.

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

Я хотел сделать что-то вроде <FieldArray name="document[0]"> таким образом, я могу дать сетке функции добавления и удаления, но кажется, что fieldarray принимает только отдельные узлы. Есть ли способ обойти это или я что-то делаю не так?

Изначально у меня было document1: { [{...fields}] }, поэтому useField выглядел так:

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

но я хотел использовать проверки схемы yup из-за проблем с ag-сеткой и проверками на уровне ячеек, поэтому я решил, что было бы проще, если бы я использовал общие ключи.

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



Ответы (1)


Оказывается, я пошел по неправильному пути. Мне нужно было использовать

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

Это соответствовало новой структуре. Итак, FieldArray поддерживает вложенные объекты, вам просто нужно правильно указать имена.

person blu    schedule 18.09.2020
comment
Ты понял!! ???? - person Erik R.; 19.09.2020