我正在制作“加载更多”,每次单击按钮时都会从后端获取10个项目。
我不明白我正在面对这个基本而又怪异的问题。
问题(示例)
const [ projectArray, setProjectArray ] = useState([ { id: 1 } ]) // original state
//
const { data } = await axios.get(`/api/project/explore/${page}`);
console.log(data); // returns array of objects
if (data.length > 0) {
setProjectArray(array => [...array, data]);
}
console.log(projectArray)
// This^^ returns >>> [ {id: 1}, [ { id: 2 }, { id: 3 }] ]
答案 0 :(得分:2)
数据也是一个数组,因此您也应该扩展它
setProjectArray(array => [...array, ...data]);
答案 1 :(得分:1)
在这种情况下,data
已经是一个数组,因此可以正常工作。在现有数组内添加一个数组。
您可能需要使用concat()
将两个数组连接在一起。
尝试setProject(concat(projectArray,data));