TransitionGroup занимает 486 секунд, чтобы удалить 500 компонентов - PullRequest
0 голосов
/ 18 марта 2020

Я использую <TransitionGroup/> и <CSSTransition timeout={2000}>..., и для всех переходов установлено значение 2000ms в CSS.

Если я добавлю, а затем удалю небольшое количество записей, это займет примерно 2000 мсек для onExited(), который должен быть вызван, как и ожидалось.

Но при 500 энтирах TransitionGroup требуется 48 секунд (chrome) или 486 (!!!!) секунд (firefox) до onExited() вызывается на последнем элементе после удаления 500 элементов.

Почему это так? Это делает его бесполезным для моего варианта использования.

Я создал пример песочницы , который является просто модификацией TransitionGroup из do c. Есть кнопка для добавления 100 элементов одновременно и кнопка «Удалить все», которая выводит на консоль информацию о том, сколько времени прошло с начала удаления до тех пор, пока на последнем элементе не будут вызваны onExiting и onExited().

Это звучит для меня как ошибка, но если есть что-то, что я могу сделать по-другому, это было бы здорово.

Если это действительно ошибка, я думаю, я мог бы сделать это с чистым CSS, но сейчас я не знаю как ...

1 Ответ

0 голосов
/ 19 марта 2020

В использовании TransitionGroup не было ничего плохого. Я создал:

TransitionGroup требуется 486 секунд для удаления 500 компонентов · Выпуск № 599 ·actjs / реагировать-группа перехода

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

...