Open omerman opened 4 years ago
I stumbled upon the same problem. Have you found a solution @omerman ?
@OnkelTem Instead of relying on the dirty fields for arrays with delete option.. I checked versus the initial values instead.. In my specific use cases it was enough.. But its not ideal..
It's really irritating :(
It's really irritating :(
It is, but to fix it you'd have to have some breaking changes.. like enforce a unique Id for each row. It is possible.. but seems like a lot of work..
Assuming we render the array with editable items, like so,
{fields.map((arrPrefix) => <Field name={
${arrPrefix}.val1} />}
When deleting a row of a field array all of the indexes following the row becomes dirty, in the
form.dirtyFields
.I think it happens because the Field component of say item[1].val1
isEqual
will return false once deleting say item[0].val1. I think the isEqual should be different when theField
is looking at a nested array field, surely a change inField
would be wrong, but Im thinking there should at least be aFieldArrayCell
that will render also accept id prop(along withField
props) and will use this to send theisEqual
the correct values, and then, the isEqual will evaluate correctly, andform.dirtyFields
will be correct.