开发者问题收集

无法读取未定义的属性“toDate”

2020-03-02
970

我在这段代码中收到 Uncaught (in promise) TypeError: Cannot read property 'toDate' of undefined 。是什么触发了这个错误?代码运行后屏幕上显示了我想要的内容,但我仍然收到此错误。

const pr1200 = document.querySelector('#comentarios-pb-preco');

function renderPreco1200(doc){
   let li = document.createElement('li');
   let name = document.createElement('span');
   let dat = document.createElement('span');

  if (doc.data() == "X"){
     console.log("Do not get this Value");
  }
  else {
     li.setAttribute('data-id', doc.id);
  name.textContent = doc.data().Obs;
  dateNow = doc.data().timestamp;
  dat.textContent = dateNow.toDate(); //This line

   li.appendChild(name);
   li.appendChild(dat);

   pr1200.appendChild(li);
  }
}

db.collection('Preco1200').get().then(snapshot => {
   snapshot.docs.forEach(doc => {
       console.log(doc.data())
        renderPreco1200(doc);
    });
});
1个回答

当 dateNow 未定义时,您可以通过将 textContent 设置为空字符串来解释 undefined 时间戳。

dat.textContent = dateNow === undefined ? "" : dateNow.toDate();
Hurried-Helpful
2020-03-02