繁体   English   中英

React - 使用 usestate 钩子推送数组

[英]React - Push array using usestate hook

我正在制作“加载更多”,每次单击按钮时都会从后端获取 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 }] ]

数据也是一个数组,所以你也应该扩展它

   setProjectArray(array => [...array, ...data]);

在这种情况下, data已经是一个数组,所以它按预期工作。 在现有数组中添加一个数组。

您可能希望使用concat()将两个数组连接在一起。

试试setProject(concat(projectArray,data));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM