Estaba tratando de cambiar/actualizar los datos dentro de una matriz, pero me da un error, consulte el siguiente código,
let array = [{ name: "lol", age: "15", address: { street: "ABC street", road: "123" } }] const onChange = (props, value) => { console.log({ ...array, [props]: value }) // it works for name,age but not working for street or road // if i pass street as a props it should update street property alone } onChange("street", 10); //its adding another node instead of updating the address.streat objectEstá agregando otro nodo porque está usando un operador de propagación en una matriz, por lo que está convirtiendo esa matriz en una propiedad de objeto por índice. He actualizado ligeramente el código. Espero que resuelva tu problema.
let array = [{ name: "lol", age: "15", address: { street: "ABC street", road: "123" } }] const onChange = (props, value) => { if(props==="street"||props==="road"){ console.log({ ...array[0], address:{ ...array[0].address, [props]: value } }) }else { console.log({ ...array[0], [props]: value }) } }