Я использовал Плоский список scrollToIndex
много раз прежде, но я занимаюсь разработкой собственного календаря и столкнулся со следующим вариантом использования, который нарушает метод:
Календарьимеет 2 режима:
ВЫБОР ДНЕЙ: В основном просто матрица сенсорных дней для выбора.
ВЫБОР ГОДА: Прокручиваемый FlatList с годами на выбор.
В определенный момент времени должен отображаться только один из них.
Все отлично работает , за исключением возврата положения прокрутки к выбранному году после переключения режимов вAndroid (в iOS работает как положено, вы можете проверить пример закуски ниже).
Вот небольшой фрагмент кода, показывающий, как я управляю обновлением прокрутки.
componentDidUpdate(_, prevState) {
if (prevState.mode === TEXT_MODE && this.state.mode === LIST_MODE) {
console.log(`updated scroll to index ${this.state.selectedItem}`);
this.itemsScroll.current.scrollToIndex({
animated: false,
index: this.state.selectedItem,
viewPosition: 0.5,
viewOffset: 0,
});
}
}
ЗДЕСЬ - минимальный рабочий пример, иллюстрирующийошибка.
ПРИМЕЧАНИЕ: RN версии 0.57.1.Ошибка не произойдет, если видимость списка не будет изменена.