问题描述
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 (将#修改为@)