首页 > 解决方案 > 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 呢?还是我在这里遗漏了一些明显的东西?

标签: javascriptreactjs

解决方案


ref的记录可能为空。这可能是返回一个额外的空对象的原因


推荐阅读