【发布时间】:2020-11-04 20:58:18
【问题描述】:
我正在尝试使用 redux 从 Firebase 获取一些数据,并在材料表组件中通过反应显示它们。数据已收到,但在数据到达后我收到此错误:TypeError:无法读取未定义的属性“长度”。我认为在从firebase接收所有数据之前发送有效载荷。尽管如此,我仍在使用 await ,但我不明白我哪里出错了。
export const fetchReviews = () => async (dispatch) => {
const reviewsCollectionRef = db.collection('reviews');
let reviews = [];
await reviewsCollectionRef .get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
// doc.data() is never undefined for query doc snapshots
// console.log(doc.id, " => ", doc.data());
reviews.push(doc.data());
}); }).then(() => dispatch({
type: FETCH_DATA_FROM_FIREBASE,
payload: reviews
}));
【问题讨论】:
-
我厌倦了@Praveen Dass 答案的代码,它按预期工作。也许问题是您的组件在尚未获取数据时正在访问数据。能否分享一下调用
fetchReviews()方法的代码?
标签: javascript reactjs firebase redux google-cloud-firestore