javascript - React - 使用 usestate 钩子推送数组
问题描述
我正在制作“加载更多”,每次单击按钮时都会从后端获取 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]);
推荐阅读
- c - 为什么 libcurl 在清理调用后仍然留下可达块?
- elasticsearch - 什么是弹性搜索中的纯负调整
- java - 随机枚举返回 null
- php - FPDF 插件“Write-Html-Tables”,支持多单元格/单元格中的换行符
- python - 如何在不使用python保存的情况下跟踪目录更改?
- typescript - 在 Typescript 中动态创建对象
- python - 需要 OHLC 数据中的移动平均高度而不创建其他列
- python - 设置从文件中读取的第一行,如果它是一个int,作为python中for循环的结束限制
- python - 在 PyTorch 中计算每个 epoch 的准确度
- c# - C# MongoDB 驱动程序,如果我按数组值过滤,过滤器不起作用