У меня есть ситуация, когда мне нужно вывести определенное количество элементов на действия пользователя (скажем, щелчок), каждый элемент должен появляться через 500 мс после предыдущего элемента.
Массив элементов хранится внутри состояния, новые элементы добавляются внутри setInterval, работающего внутри ловушки useEffect.
Вот проблема: внутри ловушки и интервала у меня нет доступа к длине массива, и она не может быть передана как зависимость, так как это приведет к бесконечному циклу. Но я должен остановить интервал после того, как определенное количество элементов уже отображается.
Я нашел решение проблемы, сохранив итерацию setInterval в хуке. Интересно, правильно ли это или есть лучший / более идиоматический подход.
Я создал простой пример проблемы с кодами и окном: https://codesandbox.io/s/xo879wn08z