Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用React DND移动dragsource?_Javascript_Reactjs_Drag And Drop_React Dnd - Fatal编程技术网

Javascript 如何使用React DND移动dragsource?

Javascript 如何使用React DND移动dragsource?,javascript,reactjs,drag-and-drop,react-dnd,Javascript,Reactjs,Drag And Drop,React Dnd,如何使用react dnd使源元素随鼠标光标移动 这就是我正在做的简化示例: import React from 'react'; import ReactDom from 'react-dom'; import {DragDropContext, DragSource} from 'react-dnd'; import HTML5Backend from 'react-dnd-html5-backend'; @DragSource("zzzz", {beginDrag:

如何使用react dnd使源元素随鼠标光标移动

这就是我正在做的简化示例:

import React from 'react';
import ReactDom from 'react-dom';
import {DragDropContext, DragSource} from 'react-dnd';
import HTML5Backend from 'react-dnd-html5-backend';

@DragSource("zzzz", {beginDrag: props => ({})}, (connect, monitor) => ({
  connectDragSource: connect.dragSource(),
  isDragging: monitor.isDragging()
}))
export class DND extends React.Component {
  render () {
    const text = this.props.isDragging ? "YAY": "DND";

    return this.props.connectDragSource(
      <div>{text}</div>
    );
  }
}

@DragDropContext(HTML5Backend)
export class Application extends React.Component {
  render() {
    return <div><DND /></div>;
  }
}

ReactDom.render(
  <Application />,
  document.getElementById('react-mount')
);
当我单击并拖动文本时,文本从DND变为YAY,但div不会移动以跟随鼠标

我所经历的示例似乎不是手动更新目标x/y坐标,我假设这是由库本身管理的。我错过了什么

编辑: 在ChromeDevTools中模拟移动设备时,我没有提到这种情况。它在桌面模式下正常工作


我目前正在考虑使用DragLayer移动dragsource,如图所示

移动浏览器在拖动时不显示拖动源的阴影。您需要使用DragPreview来绘制移动。我一直在Chrome开发工具中模拟移动平台。看起来幽灵是在桌面模式下创建的。我会去学习DragPreview的工作原理,谢谢。