При прокрутке я хочу получить предыдущий и следующий результаты.
Итак, я сначала привязываю прокрутку
window.document.body.onscroll = function () {
_self.getNewSeriesOnScroll();
}
getNewSeriesOnScroll
включает
if (scroll === 0) {
const date = series[seriesKeys[0]][0].start_time;
this.axios.get('/series/previous', {
params: {
date: date,
},
}).then(res => {
// Loop over the days
for (let day in res.data) {
let currentDay = res.data[day];
// If the day doesn't exist, create it and push the events
if (!this.series[day]) {
this.series[day] = res.data[day];
} else {
// If the day does exist push each of the returned to it
for (let a in currentDay) {
this.series[day].unshift(currentDay[a]);
}
}
this.$forceUpdate();
console.log('looping over day ', day, currentDay)
}
});
}
Это должно добавить объект до существующих ключей в объекте, например
{
"Sunday, July 12th, 2020": [...]
"Monday, July 13th, 2020": [...],
"Tuesday, July 14th, 2020": [...]
}
Проблема:
При прокрутке вверх и получении новых результатов это не так. Не добавляйте даты по порядку, как я могу сделать так, чтобы он добавлял ключ в начало объекта?
И как я могу также предотвратить его скачок вверх при загрузке предыдущих результатов? Если я сохраню состояние, в котором вы находитесь, это 0, и если я попытаюсь получить первый результат перед загрузкой, затем загрузить, а затем попытаться перейти к этому div, он просто ничего не сделает, поскольку он видит первый элемент как первый элемент после результаты загружаются.
Я использую Vue, если это имеет значение