В документации говорится, что _component_ передается в beginDrag (3-й параметр), но при вызове он кажется нулевым? Не уверен, что я делаю что-то не так. Если это помогает, мой компонент является одновременно источником и целью перетаскивания.
Я хочу получить высоту моего компонента внутри beginDrag, это не то, что я могу получить из переданных реквизитов, поэтому мне нужен доступ к компоненту.
Оказывается, проблема в том, что DnD не любит компоненты без состояния :(
Я изменился
const SortableListItem = (props) => {
к
class SortableListItem extends Component {
и _component_ теперь правильно передается в beginDrag. Стоит упомянуть, что компонент без сохранения состояния в остальном работал так, как ожидалось, поэтому был довольно смущен, почему _component_ имеет значение null в beginDrag.
Возможно, стоит обновить документацию beginDrag, чтобы указать, что DnD не работает с компонентами без сохранения состояния (при условии, что это нельзя исправить).
Уф, просто потратил несколько циклов на это (за исключением обратного вызова hover()
). Большое спасибо за публикацию этого ... Я понятия не имел, где искать дальше.
Загляните в это только сейчас - подозревайте, что проблема в том, что компоненты без состояния не имеют общедоступного экземпляра . React-dnd может потребоваться настроить способ использования ссылок, так как receiveComponent
вызывается с нулевым значением
Это случилось со мной при обновлении react-redux
и DragSource
непосредственно обертывающего компонент connect
ed.
Обходной путь: изменил порядок DragSoruce и подключился. : - /
Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время не было активности. Он будет закрыт, если больше не будет активности. Спасибо за ваш вклад.
Самый полезный комментарий
Оказывается, проблема в том, что DnD не любит компоненты без состояния :(
Я изменился
const SortableListItem = (props) => {
к
class SortableListItem extends Component {
и _component_ теперь правильно передается в beginDrag. Стоит упомянуть, что компонент без сохранения состояния в остальном работал так, как ожидалось, поэтому был довольно смущен, почему _component_ имеет значение null в beginDrag.
Возможно, стоит обновить документацию beginDrag, чтобы указать, что DnD не работает с компонентами без сохранения состояния (при условии, что это нельзя исправить).