Estoy tratando de agregar nuevos elementos a una matriz de un objeto que reside en otro objeto de un estado. Bastante anidado.
Así que probé de la siguiente manera...
// The initial data [options, setOptions] = useState({ name: 'Name goes here' type: 'type goes here' series : [{ type: 'series type', label: 'series label' })Ahora quiero agregar otro objeto dentro del objeto de la matriz de series con useEffect(). Y probé:
useEffect(() => { // other functionalities goes here setOptions({ ...options, // for copying previous data outside of series series: [{ ...options.series, //this is for copying previous data of series tooltip: { enable: true, }] }) }, [refreshData]) La forma en que estoy copiando ...options funciona absolutamente bien, pero cuando intento copiar ...options.series , agrega un nuevo objeto copiado dentro del objeto de la matriz de series como el siguiente:
{ name: 'Name goes here' //fine type: 'type goes here' //fine series: [{ {type: 'series type', label: 'series label'}, //not fine tooltip: {enable: true} //not fine //what I want is: to have previous object data and tooltip appended as another item }] }La forma en que quiero que sea el objeto es:
{ name: 'Name goes here' //fine type: 'type goes here' //fine series: [{ type: 'series type', label: 'series label' tooltip: {enable: true} }] }¿Alguien puede ayudarme con respecto a esto? agradeceria cualquier ayuda.. gracias
Aquí hay una muestra de lo que está tratando de lograr.
const d = { name: 'Name goes here', type: 'type goes here', series : [{ type: 'series type', label: 'series label' }] } const newD = { ...d, series: [ { ...d.series[0], // problem is here tooltip: { enable: true, } } ] } console.log (newD)