【发布时间】:2020-09-04 18:42:16
【问题描述】:
我正在尝试使用react-dnd 创建一个拖放列表。
我有一个部分工作的例子:codesandbox example
我有一个问题:
我无法将项目放在空白部分。
如果我们将image1 移动到第一组或第三组,我们将无法返回第二组。我们也不能将 item 放到 group 的最后一个位置(我们需要设置一个除最后一个以外的位置,然后移动到最后一个),但我认为这些问题是相关的。
我怀疑问题出在DragItem.js:
export default DropTarget(Types.FILE, fileTarget, (connect, monitor) => ({
connectDropTarget: connect.dropTarget(),
isOver: monitor.isOver(),
isOverCurrent: monitor.isOver({ shallow: true }),
canDrop: monitor.canDrop(),
itemType: monitor.getItemType()
}))(DragSource(Types.FILE, cardSource, collect)(DragItem));
DragSource 和 DropTarget 是同一个组件,所以如果 section 本身没有任何项目,则它不是 DrogTarget 那里。
当我试图将项目移到Project.js 的更高位置时,整个部分(包括里面的所有元素)都是一个要拖动的元素,这也不是解决方案。
有什么想法吗?或者也许我必须使用不同的工具来完成这项任务?
【问题讨论】:
-
只需将空白部分也设为放置目标
标签: javascript reactjs drag-and-drop react-dnd sortablejs