javascript - Javascript - 控制台数据显示长度为 2 但仅包含一个值
问题描述
我有以下 Firestore 代码,它只是将一些对象附加到一个数组中,然后将其传递给一个反应组件以填充一个列表。
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}
}
并且 userData 被传递到一个反应组件中。收到后,我想从数组中弹出最后一个元素。
<Component userData={userData.data} />
在里面Component
我弹出数据。
但问题在于console.log
函数打印出 4 个长度的项目,但里面只有 3 个项目。
我的第一个猜测是关于引用调用,但是组件 pop 是如何影响已经执行的函数的 console.log 呢?还是我在这里遗漏了一些明显的东西?
解决方案
您ref
的记录可能为空。这可能是返回一个额外的空对象的原因
推荐阅读
- javascript - 实现 css 强制选择/选项始终下拉,而不是向上
- python - 如何在 django 中上传文件并访问文件内容?
- python - 为什么 CSS 和 HTML 之间的链接不起作用?
- azure - 如何从同一资源组中的 Azure Function 应用设置 Key Vault 机密?
- python - 如何指示 python pip 使用用户修改版本的包来满足其他包的依赖关系?
- c# - ASP.NET Basic 搜索表单在 url 中返回 += 但只需要返回 =
- azure-cosmosdb - 检索 cosmos DB 的内部工作流程如何工作?
- scala - Spark Ignite 2.8.1 抛出 java.lang.NoClassDefFoundError: org/h2/index/BaseIndex
- javascript - 关闭带有表单数据的选项卡时阻止默认浏览器操作
- java - 无法为 json arraylist 设置值:对象无法解析或不是字段