我正在使用React DnD来处理几个不同的dragsources。在chrome中它们都可以正常工作但是对于Firefox中的一个组件,虽然看起来组件被拖动,但droptarget上没有任何反应。一些调查显示,beginDrag()
从未被调用过:
我在故障组件上有以下包装器(带有一些调试打印):
DragSource(
DIALOGUE,
{
beginDrag(props) {
console.log('beginDrag()');
return {
id: props.id,
};
},
},
(connection, monitor) => {
console.log('monitor.canDrag()', monitor.canDrag());
console.log('monitor.isDragging()', monitor.isDragging());
console.log('monitor.getItemType()', monitor.getItemType());
console.log('monitor.getItem()', monitor.getItem());
return {
connectDragSource: connection.dragSource(),
isDragging: monitor.isDragging(),
};
},
)
当我开始在chrome中拖动组件时(它正在工作)我看到以下控制台输出:
beginDrag()
monitor.canDrag() false
monitor.isDragging() false
monitor.getItemType() DIALOGUE
monitor.getItem() {id: "bcf5947c-29ec-4fd8-9efc-6f3810ea167a"}
monitor.canDrag() false
monitor.isDragging() true
monitor.getItemType() DIALOGUE
monitor.getItem() {id: "bcf5947c-29ec-4fd8-9efc-6f3810ea167a"}
在Firefox中,它无法正常工作,我得到了
monitor.canDrag() false
monitor.isDragging() false
monitor.getItemType() __NATIVE_URL__
monitor.getItem() Object { urls: Getter }
所以我发现永远不会调用beginDrag
,isDragging
永远不会变为真,itemType
和item
会有一些奇怪的值。
我正在使用react版本16.3.2,react-dnd版本2.6.0和Firefox版本59.0.3。
知道发生了什么事吗?
答案 0 :(得分:1)
在尝试使按钮可拖动时遇到了这个问题-事实证明,从Firefox 61.0.1(https://bugzilla.mozilla.org/show_bug.cgi?id=568313)开始,按钮不可拖动-并通过切换到进行了修复。