#javascript #reactjs #react-virtualized
#javascript #reactjs #реакция-виртуализированная
Вопрос:
(Этот вопрос относится к виртуальной библиотеке react)
У меня есть компонент, который использует <List>
для отображения нескольких категорий элементов. Результирующий вывод выглядит примерно так:
Jump to: Planets, Nebulae
PLANETS
- Mercury
- Venus
- Jupiter
- ...
NEBULAE
- Horsehead
- Ant
- Boomerang
- ...
Я хотел бы использовать ссылки «Перейти к», чтобы перейти к началу соответствующего раздела в списке. Если я прокручиваю некоторые, я бы хотел, чтобы последующие нажатия на ссылку перехода возвращали меня к разделу.
При первом нажатии на ссылку «Туманности» все работает нормально, но при последующих нажатиях ничего не происходит. Я предполагаю, что это потому, что scrollToIndex
является реквизитом и не изменяется после первого щелчка. Я пробовал использовать forceUpdateGrid
, но, похоже, это не приводит к сбросу положения прокрутки.
Есть ли способ перейти к одному и тому же индексу несколько раз подряд?
Ответ №1:
К сожалению, это ограничение подхода props. (react-virtualized прокручивается вручную только при обнаружении нового реквизита. В противном случае пользователи не смогли бы прокручивать с помощью мыши, как только был установлен начальный реквизит.)
Один из способов обойти это — отменить scrollToIndex
prop после того, как вы его установили (так что, если вы затем сбросите его, это все равно будет новое значение). Временное отключение его (иначе сброс на undefined
) также не повлияет на список, так что все должно быть в порядке.
Комментарии:
1. Вот с чем я столкнулся. Я надеялся, что пропустил что-то в API, что было бы немного более простым. Спасибо за ввод.
2. Нет проблем. Раньше у меня также был метод Api для прокрутки, но это не было похоже на способ React для выполнения чего-либо, поскольку для этого требовалась ссылка и т.д.