从 Firestore 获取数据,但问题出在日期字段中 获取数据
dateCreated : Timestamp nanoseconds : 518000000 seconds : 1722162236 [[Prototype]] : Object dislikes : 1
const docSnap = await getDoc(docref);
if (docSnap.exists()) {
console.log(docSnap.data());
setDocument(docSnap.data());
setDocumentDate(Document.dateCreated);
console.log(DocumentDate);
} else {
console.log("Document does not exist");
}
undefined
我不知道为什么会这样
......................
你说你“输出未定义”,但事实并非如此。
您将获得第一个 console.log() 的对象值,并且您将获得第二个 console.log() 的
undefined
。
第二个 console.log() 尝试呈现
DocumentDate
的值,假设您调用 setDocumentDate()
,它是一个状态变量。
你想认识到 NextJS/React 中的“设置状态函数”是一个 异步函数。 当你调用它时,JS 将要完成的工作放在“异步队列”上,并继续执行你的下一行代码。 在组件的当前渲染完成之后,状态变量的值才会更新。
因此
setDocument(docSnap.data())
不会立即设置 Document
的值。 setDocumentDate(Document.dateCreated)
将得到 undefined
,因为 Document
还没有值,即使 Document
中有值,对 console.log(DocumentDate)
的调用也会呈现 undefined
,因为 DocumentDate
中没有设置值
还没有。