我已经调整了 react-dnd sortable example以在我的应用程序中使用. 我不能让“不透明”跟随我的拖累. 当我最初选择元素时,应用了不透明度: 但是当我向上移动以改变位置时,不透明度仍然应
我不能让“不透明”跟随我的拖累.
当我最初选择元素时,应用了不透明度:
但是当我向上移动以改变位置时,不透明度仍然应用于原始DOM元素(?).
状态相应地更改,与此状态关联的表中的列正在重新排序.因此,除了不透明之外,其他一切都很好.
当我移动元素时,只有li的值被更改但数据重新连接不会改变位置.
我的应用程序的唯一区别是我如何管理状态.在我的应用程序中,状态通过redux进行管理.
传递给DropTarget的悬停函数基本上是从示例中复制和粘贴的.
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)好的,我终于把它整理好了
我从父组件传入的键值存在问题.
我过去常常将该键放在索引上,该索引随元素而变化.
多数民众赞成我曾经这样做过:
const columnTags = columns.map( (column, index) => <SortableColumnEntry key={index} index={index} column={column} />)
当我改变它以保持独特并与州相关联时:
const columnTags = columns.map( (column, index) => <SortableColumnEntry key={column} index={index} column={column} />)
一切都开始奏效了.
目前,列值是唯一的并且与单个条目相关联 – 稍后,将id字段添加到状态会很好.