Javascript控制台数据显示长度为2,但只包含一个值
我有下面的firestore代码,它只是将一些对象附加到数组中,然后将数组传递给react组件以填充列表Javascript控制台数据显示长度为2,但只包含一个值,javascript,reactjs,Javascript,Reactjs,我有下面的firestore代码,它只是将一些对象附加到数组中,然后将数组传递给react组件以填充列表 export const getUsers =async (tarinerId) => { let data = []; try{ let ref = await db .collection("users") .orderBy("createdAt") .li
export const getUsers =async (tarinerId) => {
let data = [];
try{
let ref = await db
.collection("users")
.orderBy("createdAt")
.limit(3)
.get();
if (ref.empty) {
return new Promise.reject("No User Found")
}
ref.forEach(doc => {
data.push({
name: doc.data().first_name+" "+doc.data().last_name,
id: doc.data().id,
email: doc.data().email,
createdAt: doc.data().createdAt
})
}
console.log(data)
return Promise.resolve({userData: data})
} catch(error) {console.log(error}
}
用户数据被传递到react组件中。一旦收到,我想从数组中弹出最后一个元素
<Component userData={userData.data} />
在组件中
我正在弹出数据
但是问题是console。函数中的log
打印出4个项目的长度,但其中只有3个项目
我的第一个猜测是关于引用调用,但是为什么组件pop会影响已经执行的函数上的console.log?或者这里有什么明显的遗漏吗?您的
ref
可能有一个空记录。这可能就是返回额外的空对象的原因能否先修复代码缩进?如果缩进正确,您会注意到提供的代码段缺少3个结尾}
和1个)
。您当前也从forEach
回调返回,而不是从getUsers
返回。由于代码是如此杂乱无章,我认为在将代码复制到问题中时可能出现了错误。更新了代码