Custom the tree nodes to make them draggable and then define a Droppable area to accept the dropped nodes. Please refer to the code below.
renderNode({ node }) {
const proxy = () => {
return (
<div className="tree-node-proxy">
<span className="tree-dnd-icon" ref={el => node.dndIconEl = el}> </span>
<span>{node.text}</span>
</div>
)
}
return (
<Draggable
revert
proxy={proxy}
deltaX={10}
deltaY={10}
edge={5}
>
<span>{node.text}</span>
</Draggable>
)
}
<div className="f-row">
<div>
<Tree data={this.state.data} render={this.renderNode}></Tree>
</div>
<Droppable
onDragEnter={() => this.setState({ isover: true })}
onDragLeave={() => this.setState({ isover: false })}
onDrop={() => this.setState({ dropped: true })}
>
<div className={dropCls} style={{ border: '1px solid #ddd', width: 200, marginLeft: 20 }}>
<p style={{ textAlign: 'center' }}>Drop here</p>
</div>
</Droppable>
</div>