Saya memiliki pohon bersarang:
var TreeNodes = React.createClass({
...
render : function() {
var output = this.props.item.children.map(function(node, index) {
return (<li><TreeNodes item = {node}/></li>);
})
return (
<div onDragEnter={this._onDragEnter}
onDragStart = {this._onDragStart}
onDragEnd = {this._onDragEnd}>
{item.title}
</div>
{output}
)
})
Berikut fungsinya (ini Flux, namun menurut saya tidak penting):
_onDragStart : function(e) {
var draggingItem = {...};
this.props.context.executeAction(treeActions._onDragStart, draggingItem);
},
_onDragEnter: function(e){
var dropCandidate = {...};
this.props.context.executeAction(treeActions.checkDropPossible, dropCandidate);
var DraggingRef = this.props.dragging.type + this.props.dragging.id;
var self = this;
this.props.parent.refs[DraggingRef].getDOMNode().addEventListener('dragend', self._onDragEnd);
},
_onDragEnd : function(e) {
var dropPlace= {...};
this.props.context.executeAction(treeActions._onDrop, dropPlace);
if (this.isMounted()) {
this.getDOMNode().removeEventListener('dragend', this.dragEnd, false);
}
},
Di onDragEnter saya menghapus dragItem dari tempat sebelumnya dan menambahkan ke tempat sekarang. Semuanya berfungsi dengan baik saat saya memindahkan item di TreeNode yang sama. Saat saya melompat ke yang lain, onDragEnter (mengubah tempat item) masih berfungsi dengan baik, tetapi onDragEnd tidak menyala. Bisakah seseorang memberi saya petunjuk? :)