Я работаю с firestore и пытаюсь извлечь данные в мой компонент SectionList. Я хочу, чтобы разделы были разбиты по датам в моих данных пожарного магазина. Например, если пользователь забронировал дату 12 сентября, в заголовке раздела должно отображаться предыдущее воскресенье (в данном случае 9 сентября) для данной даты. Моя проблема в том, что я получаю сообщение об ошибке "длина списка разделов не определена". Я понимаю, что это должен быть массив. Как разместить информацию из массива из firestore в раздел «data» и «title» реквизита.
Я уже извлек данные из коллекции и поместил их в this.state. Мне нужно вставить информацию из дат в разделы моего компонента sectionlist.
onCollectionUpdate = (querySnapshot) => {
var history = this.state.history;
let that = this;
querySnapshot.forEach((doc) => {
const { date, displayName, hours, image} = doc.data();
history.push({
key: doc.id,
date: doc.data().date,
displayName: doc.data().displayName,
hours: doc.data().hours,
image: doc.data().image,
});
});
that.setState({
history,
sections,
loading: false,
});
}
Мне удалось получить список для заполнения, но каждый элемент имеет свой собственный вид. Я работаю над тем, чтобы все даты в пределах одной недели попадали в группу просмотра воскресенья этой недели. Это моя функция, и я знаю, что мне нужно манипулировать способом перемещения массива.
onCollectionUpdate = (querySnapshot) => {
// make copy of history object
let that = this;
let history = this.state.history;
let sectionExist = false;
//let history = JSON.stringify(JSON.parse(this.state.history);
querySnapshot.forEach((doc) => {
// find last sunday
var dates = moment(doc.data().date);
var weekOf = dates.startOf('week').valueOf();
var weekOfFormat = moment(weekOf).format('MMM Do')
console.log(doc);
history.push({
title: weekOfFormat,
data: [{
key: doc.id,
date: doc.data().date,
displayName: doc.data().displayName,
hours: doc.data().hours,
image: doc.data().image,
}]
});
});
that.setState({
history,
loading: false,
});
}