¿Cómo actualizo el content de child12 usando immerJS?
const [fields, setFields] = useState([ { name: "Parent 1", id: "parent1", children: [ {id:"child11", content=""}, {id:"child12", content=""} ], }, { name: "Parent 2", id: "parent2", children: [ {id:"child21", content=""}, {id:"child22", content=""} ], }, ]); He podido lograr cambiar el name parent usando lo siguiente:
setFields( produce((draft) => { const field = draft.find((field) => field.id === "parent1"); field[name] = "new parent1"; }) ); ¿Cómo profundizo, encuentro dentro de los children al niño por id y cambio su valor de content ?
Resulta que es notablemente simple: solo mute los datos.
setFields( produce((draft) => { const child = draft.find((field) => field.id === "parent1").children.find((child)=>child.id==="child21"); child[content] = "new value"; }) );