Estoy tratando de agregar una matriz y un objeto a una matriz.
Este es mi constructor
const [dashboard, setDashboard] = useState({ loading: true, data: [], address: '' })y así es como quería que terminaran los datos
{ loading: true, data: [{id: 0, name: 'A'}, {id: 1, name: 'B'}], address: 'xxx' } Parece que no puedo resolverlo y solo pude agregar las matrices pero no los otros objetos como loading y address con algo como esto, pero esto no es lo que necesito y solo estoy dando un ejemplo de lo que intenté hacer:
el constructor de este en la parte inferior es diferente de lo que quiero usar, usé algo como esto
const [dashboard, setDashboard] = useState([]) setDashboard((prev) => { return [...prev, newData] })const [dashboard, setDashboard] = useState({ loading: true, data: [], address: '' })La línea de arriba se ve muy bien, no hay problemas allí.
setDashboard((prev) => { return [...prev, newData] }) Hacer esto configurará la variable de su dashboard para que sea una matriz, y definitivamente no es lo que dijo que quería.
setDashboard((prev) => { return { ...prev, data: [...prev.data, ...newData] // <-- assuming new data is an array } }) Dependiendo de cómo se vea newData , es posible que deba fusionar manualmente los datos en su objeto de datos anterior. Por ejemplo, si quiere asegurarse de que no tiene valores duplicados en la matriz, o si necesita ordenarlos.
Si entiendo su problema correctamente, está tratando de hacer algo como esto:
setDashbaord(prevDashboard => ({ ...prevDashboard, address: "xxx", data: [...prevDashboard.data, newData] }));¿Es esto lo que estás buscando?