我定义了一个如下所示的数组:
const photos = [];
然后向其中添加两个项目,如下所示:
docs.forEach(item =>
photos.push({name: item.data().name, url: item.data().url})));
在执行 console.log(photos) 时,我可以看到它包含两项:
[]
0: {name: "electronics.jpg", url: "https://firebasestorage.googleapis.com/v0/b/freebi…=media&token=c670308a-91b3-4125-ae93-abb2d6409ae2"}
1: {name: "clothing.jpg", url: "https://firebasestorage.googleapis.com/v0/b/freebi…=media&token=b757702e-6a82-4459-beae-11de53830fae"}
length: 2
__proto__: Array(0)
但是当我尝试获取 photos.length 时,它返回 0。
此外,当我尝试通过 map() 函数遍历照片数组时,我看不到该项目被迭代了。代码如下:
photos.map(photo => (
<Image src={photo.url} />
)
有人可以告诉我哪里可能出了问题吗?谢谢!
最佳答案
您可以避免使用 forEach
并在一条语句中执行此操作
const photos = docs.map(item => {name: item.data().name, url: item.data().url})
这将至少创建 1
个照片变量。试试这个,登录并让我们知道你接下来会得到什么
关于javascript - 无法获取数组的长度并且 map() 不适用于该数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57469156/