2016-08-18 2 views
0

Ci-dessous la méthode canDrag de mon spec source de glisser: Obtenir la position de la souris dans la méthode canDrag de la spécification DragSource

const itemDragSource = { 
 
    canDrag(props, monitor) { 
 
     if(props.canDrag && !props.canDrag(props.itemData)) { 
 
      if(props.dragUndraggable){ 
 
       debugger; 
 
       props.dragUndraggable(props.itemData, monitor.getInitialClientOffset()); 
 
      } 
 
      return false; 
 
     } 
 
     return true; 
 
    } 
 
}

Le problème est que renvoie la valeur null, monitor.getInitialClientOffset donc fait getInitialSourceClientOffset et getClientOffset? Des idées sur la façon d'obtenir la position de la souris à ce stade?

Répondre

0

Ces deux fonctions (et toutes les fonctions de position get) renvoient null à l'intérieur de canDrag car à ce moment rien n'est déplacé (par: http://gaearon.github.io/react-dnd/docs-drag-source-monitor.html). Donc si vous ne pouvez pas mettre cette logique ailleurs (comme dans isDragging ou endDrag) vous devrez implémenter un schéma externe pour garder une trace de la position de la souris, peut-être quelque chose comme ce qui a été suggéré ici: Javascript - Track mouse position