Реагирует на собственные проблемы FlatList с .push (), пытаясь использовать вместо него .concat (), поскольку он создает новый объект, основываясь на этом:
Плоский список не обновляется, когда данные поставляются с Redux (React Native)
Первоначально я использовал .push ()
publicChannelsToDownload.push({ id: channelId, info: channelInfo, unreadMessages: snapshot.val() });
Однако, когда я переключаюсь на concat, массив возвращается как пустой
let publicChannelsToDownload = [];
snapshot.forEach(channelSnapshot => {
let channelId = channelSnapshot.key;
let channelInfo = channelSnapshot.val();
// add the channel ID to the download list
const UNREAD_MESSAGES = FIREBASE_REF_UNREAD.child("Public")
.child(channelId).child('users').child(currentUserID)
UNREAD_MESSAGES.once("value")
.then(snapshot => {
if (snapshot.val() === null) {
// get number of messages in thread if haven't opened
publicChannelsToDownload = publicChannelsToDownload.concat([{ id: channelId, info: channelInfo, unreadMessages: 0 }]);
} else {
publicChannelsToDownload = publicChannelsToDownload.concat([{ id: channelId, info: channelInfo, unreadMessages: snapshot.val() }]);
}
}
)
});