Проблема заключается в том, как вы обновляете состояние, вы должны либо использовать functional setState
, поскольку вы вызываете setState внутри al oop, и использовать this.state.data
для обновления состояния, но обновления состояния не выполняются немедленно, а происходят асинхронно
componentDidMount() {
const db = firebase.firestore()
db.collection('posts').get().then(snapshot => {
snapshot.docs.forEach(post => {
let id = post.id
let postData = post.data()
postData['id'] = id
this.setState(prev => ({
posts: [...prev.posts, postData]
}))
})
})
}
или даже лучше обновить, когда все данные будут доступны
componentDidMount() {
const db = firebase.firestore()
db.collection('posts').get().then(async snapshot => {
const data = snapshot.docs.map(post => {
let id = post.id
let postData = post.data()
postData['id'] = id
return postData;
});
this.setState(prev => ({
posts: [...prev.posts, ...data]
}));
})
}