显然没有导致错误“TypeError:无法读取未定义的属性”的原因
2022-01-26
548
我必须在布局中显示从数据库中获取的一些数据。这是我用来获取数据的代码:
const [array, setArray] = useState([])
const collectionRef = collection(db, "Collection")
const q = query(collectionRef, orderBy("Order", "desc"))
useEffect(() => {
auth.onAuthStateChanged(function (user) {
if (user) {
onSnapshot(q, (data) =>
setArray(data.docs.map((doc) => ({ ...doc.data(), id: doc.id })))
);
}
})
}, [auth]);
下面是 html
<div>
<h2>{array[0].Name}</h2>
</div>
最让我困惑的是,错误并不总是出现,有时一切正常,有时它会无缘无故地停止工作。如果我对数组执行 console.log,有时它会打印数据并且一切正常,有时它会打印一个空数组并且什么也不做。 我声明该数组从未被修改过,它是在代码开头加载的,并且仅读取数据。
1个回答
array
在第一次渲染时为空,在返回数据之前,所有其他渲染也是如此。尝试类似:
<div>
<h2>{array.length && array[0].Name}</h2>
</div>
assembler
2022-01-26