Очень простой способ - создать новый массив, который должен содержать элементы, которые в настоящее время видимы.
Затем выполните простой setTimeout, который будет вызывать рекурсивную функцию каждые 500 мс, которая добавит один элемент к видимому array.
const SortableList = SortableContainer(({ fileList }) => {
const [visibleItems, setVisibleItems] = useState([]);
useEffect(() => {
function displayNext(next) {
setVisibleItems(prevItems => [...prevItems, fileList[next]]);
if (++next < fileList.length) {
setTimeout(() => {
displayNext(next);
}, 500);
}
}
displayNext(0);
}, []);
return (
<div>
{
visibleItems.map((file, index) => (
<SortableItem key={`item-${index}`} index={index} value={file} />
))
}
</div>
)});
Сообщите мне, если работает!