Я работаю с firestore и пытаюсь загрузить данные в свой компонент SectionList. Я хочу, чтобы разделы были разбиты по датам в моих данных firestore. Например, если пользователь забронировал дату 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,
});
}