我正在尝试添加一个数组和一个对象到一个数组。
这是构造函数
const [dashboard, setDashboard] = useState({ loading: true, data: [], address: '' })
,这就是我想让数据结束的方式
{
loading: true,
data: [{id: 0, name: 'A'}, {id: 1, name: 'B'}],
address: 'xxx'
}
我似乎不能弄清楚,只能设法添加数组,而不是其他对象,如loading
和address
与这样的东西,但这不是我需要的,我只是给出一个例子,我试图做的:
下面这个的构造函数和我想用的不一样,我用的是这样的
const [dashboard, setDashboard] = useState([])
setDashboard((prev) => {
return [...prev, newData]
})
如果我正确理解你的问题,你正试图做这样的事情:
setDashbaord(prevDashboard => ({ ...prevDashboard, address: "xxx", data: [...prevDashboard.data, newData] }));
这是你想要的吗?
const [dashboard, setDashboard] = useState({ loading: true, data: [], address: '' })
上面的行看起来很好,没有问题。
setDashboard((prev) => {
return [...prev, newData]
})
这样做会将你的dashboard
变量设置为一个数组,这绝对不是你说你想要的。
setDashboard((prev) => {
return {
...prev,
data: [...prev.data, ...newData] // <-- assuming new data is an array
}
})
根据newData
的样子,您可能需要手动将数据合并到以前的数据对象中。例如,如果您想确保数组中没有重复的值,或者您需要对它们进行排序。