Держите прокрутку-y после перерисовки - PullRequest
0 голосов
/ 29 октября 2018

У меня есть выпадающий список с множеством флажков, поэтому этот контейнер имеет прокрутку. Но когда я нажимаю на любой флажок - он выбирает \ отменяет выбор, а затем состояние меняется.

Так что проблема в том, что после перерисовки этот контейнер возвращается наверх. Можно ли сохранить прокрутку контейнера после рендеринга, не сохраняя его в состоянии?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Вы можете сохранить «снимок» позиции прокрутки до фазы фиксации.

getSnapshotBeforeUpdate () показывает, что вы ищете.

Пример документации сохраняет текущую позицию прокрутки в getSnapshotBeforeUpdate методе жизненного цикла, а затем использует значение snapshot, переданное componentDidUpdate(prevProps, prevState, snapshot), в качестве последнего аргумента для восстановления позиции прокрутки.

Не требуется создавать состояние для сохранения позиции прокрутки, как вы просили.

0 голосов
/ 29 октября 2018

Это происходит потому, что вы повторно отображаете полный список флажков.

Есть 2 возможных подхода:

  1. Перерисовать только релевантный флажок
  2. Сохраните позицию прокрутки контейнера и обновите ее после повторного рендеринга компонента.

К сожалению, вы не добавили ни одного примера кода, поэтому не можете поделиться изменениями кода.

...