Реагировать на цель DnD зависания и падение никогда не вызывается

У меня проблемы с получением событий зависания и отбрасывания. Сейчас похоже, что ничего не происходит, или он будет пытаться перетащить, но перетаскивание никогда не заканчивается, пока не будет вызван beginDrag. Я попытался добавить индекс к экземпляру, и я пытался изменить то, что возвращается на beginDrag, но я не смог заставить что-либо работать. У кого-нибудь есть мысли? Благодарю.

Версии, на которых я нахожусь: "response-dnd": "2.6.0", "Reaction-dnd-html5-backend": "2.6.0",

Мой компонент

import React, { Component } from 'react';
import { findDOMNode } from 'react-dom';
import { DragSource, DropTarget } from 'react-dnd';
import DropTypes from '../utils/DropTypes';
import ColumnFieldTypes from '../utils/ColumnFieldTypes';

const cardSource = {
    beginDrag(props) {
        console.log(props)
        return props.card
    },
    endDrag : function () {
      console.log('endDrag');
    }
}

const cardTarget = {
    canDrop(props, monitor) {
        const item = monitor.getItem();
        return item ? true : false;
        // this gets called, however
    },

    hover: function (props, monitor, component) {
        console.log('hover');
        // not getting called!
    },

    drop : function (props) {
        console.log('drop');
        return props.card;
        // not getting called either!
    }
}

@DropTarget(DropTypes.CARD, cardTarget, (connect, monitor) => ({
    connectDropTarget: connect.dropTarget(),
    isOver: monitor.isOver(),
    isOverCurrent: monitor.isOver({ shallow: true }),
    canDrop: monitor.canDrop(),
    itemType: monitor.getItemType()
}))
@DragSource(DropTypes.CARD, cardSource, (connect, monitor) => ({
    connectDragSource: connect.dragSource(),
    connectDragPreview: connect.dragPreview(),
    isDragging: monitor.isDragging(),
}))

export class CardDragDrop extends Component {
    props: {
        connectDragSource: func,
        connectDropTarget: func,
        isDragging: bool,
    };

    constructor(props) {
        super(props);
    }

    render() {
        const { 
            card,
            connectDragSource,
            connectDropTarget,
            isDragging,
        } = this.props;
        const cardOpacity = isDragging ? 0 : 1;

        return connectDragSource(
            connectDropTarget(
                this.props.children
            )
        )
    }
}

родительский компонент:

@DragDropContext(HTML5Backend)
  export class ConfigurableStatusSelector extends Component {

   constructor(props) {
        super(props);

        this.state = {
            selections: []
        };
    }

   render() {
     return (
       <div>
    { selections.map((card, index) => {
       return (
           <CardDragDrop 
             key={`${card.ID}-status-card-${index}`} 
             card={card}
             moveCard={this.moveCard}
           >
              <div>
                 <StatusCard
                     card={card} 
                 />
             </div>
          </CardDragDrop>
        )     
     }) : null }
     </div>
    )}

0 ответов

Другие вопросы по тегам