【发布时间】:2019-03-19 17:17:44
【问题描述】:
我正在使用react-beautiful-dnd 创建垂直嵌套拖放。我推荐了一些answers in github
我从沙盒中分叉并创建了一个新的用于垂直嵌套拖放的沙盒。 当我更改内部 DND 时,外部 DND 会更改不在 DND 内部的值。
代码
onDragEnd(result) {
// dropped outside the list
console.log("innner drag");
if (!result.destination) {
return;
}
const items = reorder(
this.state.items,
result.source.index,
result.destination.index
);
this.setState({
items
});
}
【问题讨论】:
-
在 react-beautiful-dnd 中,所有 onDragEnd 事件都由根 DragDropContext 处理。目前,嵌套的 DragDropContexts aren't supported。在您的 ServiceCommandUnit.js 文件中,您实际上并未在任何地方使用
onDragEnd函数。我的建议是将 ServiceCommandUnit.js 的状态提升到 index.js,并检查结果中的droppableId以检查每次调用onDragEnd时应该处理哪个“列表”。 -
另外,提示:“draggableID”可以是任何你想要的字符串。因此,如果您愿意,可以嵌入所有信息以将可拖动内容标识为对象,然后对其进行 JSON.stringify 并将其用作“draggableID”。这就是我目前所做的,尽管它不是那样的意图。 ^_^
-
对于像我这样来自谷歌的人,请注意,彼此完全无关的
DragDropContexts 完全可以。所以你可以在 DragDropContext 中有一个 DragDropContext,如果你不在它们之间拖动,那完全没问题。
标签: javascript reactjs drag-and-drop nested