我已经调整了react-dnd 可排序示例以在我的应用程序内部使用。
我无法使“不透明”跟随我的阻力。
当我最初选择元素时应用不透明度:
但是当我向上移动它以改变位置时,不透明度仍然应用于原始 DOM 元素(?)。
状态相应更改,表中与此状态关联的列正在重新排序。因此,除了不透明度之外,其他一切都运行良好。
当我移动元素时,只有 li 的值正在改变,但data-reactid
位置没有改变。
我的应用程序中唯一的区别是我管理状态的方式。在我的应用程序中,状态是通过 redux 管理的。
传递给 DropTarget的hover
函数基本上是示例中的复制和粘贴。
SortableColumnEntry 组件:
class SortableColumnEntry extends Component {
render(){
const { connectDragSource, connectDropTarget } = this.props
const { column, isDragging, index } = this.props
const opacity = isDragging ? 0 : 1
const element = connectDropTarget(connectDragSource(
<li
style={{opacity: opacity}}</li>
))
return element
}
}
export default flow(
DragSource(DragTypes.COLUMN, source, (connect, monitor) => ({
connectDragSource: connect.dragSource(),
isDragging: monitor.isDragging()
})),
DropTarget(DragTypes.COLUMN, target, (connect) => ({
connectDropTarget: connect.dropTarget()
}))
)(SortableColumnEntry)