向数组react钩子中添加一个数组和一个对象



我正在尝试添加一个数组和一个对象到一个数组。

这是构造函数

const [dashboard, setDashboard] = useState({ loading: true, data: [], address: '' })

,这就是我想让数据结束的方式

{
loading: true,
data: [{id: 0, name: 'A'}, {id: 1, name: 'B'}],
address: 'xxx'
}

我似乎不能弄清楚,只能设法添加数组,而不是其他对象,如loadingaddress与这样的东西,但这不是我需要的,我只是给出一个例子,我试图做的:

下面这个的构造函数和我想用的不一样,我用的是这样的

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的样子,您可能需要手动将数据合并到以前的数据对象中。例如,如果您想确保数组中没有重复的值,或者您需要对它们进行排序。

相关内容

  • 没有找到相关文章

最新更新