Я пытаюсь использовать новый API-интерфейс ловушек в реакции-dnd аналогично примеру сортировки , но мой код работает неправильно, и я понял, что не понимаю, почему пример работает.
Может ли кто-нибудь объяснить, почему флаг isDragging в результатах сбора возвращается через свойства, возвращаемые из usDrag, в нужный компонент функции после его перемещения в другой индекс?
Мое понимание хуков состоит в том, что они зависят от порядка их вызова и под покровом useDrag сохраняет результаты сборщика в хуке useState. Когда вы перемещаете карту, все компоненты функции перерисовываются, во время этого перезапуска вызывается useDrag, результаты сборщика извлекаются из состояния внутри useDrag и возвращаются. При перетаскивании элемента он меняет порядок, и его поле isDragging не должно перемещаться вместе с ним, а остается «привязанным» к исходному индексу. Это именно та ошибка, которую я вижу в своем коде, но каким-то образом пример работает. Что я упускаю (может быть что-то фундаментальное)?