Как компонент React может управлять положением прокрутки дочернего компонента?
Parent
- родительский компонент, у него есть дочерние элементы List
(который содержит прокручиваемый div) и Actions
с кнопкой, которая должна управлять прокруткой List
прокручиваемого div.
Некоторые варианты:
- Поддерживайте ссылку на элемент DOM прокручиваемого div и позицию прокрутки в Redux Store. Прокрутка триггера в редукторе при изменении состояния.
- Пусть
Parent
управляет прокруткой. Каким-то образом уParent
должна быть ссылка DOM на прокручиваемый div вList
, не знаю, какList
может пропустить ссылку. - Используйте что-то вроде react virtualized (
VirtualScroll
), чтобы отображать виртуальный контент вList
. На самом деле не прокручивайте, просто обновляйте контент до того, что будет видно в новой позиции прокрутки. Это значит, что мы не можем анимировать прокрутку?
Вариант №2 кажется наиболее разумным (в этом контексте важна анимированная прокрутка), но я недостаточно знаком с лучшими практиками в React / Redux, чтобы принимать правильные архитектурные решения.