如何解决Array0,但内容不为空这是什么意思?
getLog (在单独的文件中)
export const getLog = async () => {
return client.then(async () => {
res1 = await method1()
res2 = await method2(res1)
// further parse data...
return res4
}
}
此函数是异步的,它返回一个promise,该promise返回各种异步调用的结果。
getItem (反应组件)
const [items,setItems]=useState([])
getItem = async () => {
getLog().then((res: any) => {
let finalArr: any = []
res.map((val: any) => finalArr.push(val))
console.log(res,finalArr)
setItems(finalArr)
})
}
getItem()
-
res
:打印Array(0),但是当我在DevTools中对其进行扩展时,它显示了一个对象数组:0: {name: "x",property:"y",otherProperty:"z"} 1: {name: "x",otherProperty:"z"}
-
finalArr
:打印Array(0),展开后的确是一个空数组
在我看来,这是array-like object
(不可迭代)。
如何从该对象提取数据?
有趣的是,在 React DevTools 中,我可以看到该数组已正确存储在State中,但是当我在模板中使用{items.length}
时,它将打印0
(如果不使用模拟数据重建异步/等待流,我将无法给出一个最小的例子。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。