4

我在使用 React-DND 做事时遇到了问题。

我的问题是关于防止为特定状态拖动组件。但是“canDrag”只能有 props 和 monitor 作为参数。(monitor.getItem 在我的情况下显示为 null)并且我不能使用这些道具,因为它们将出现在每个组件中(因为道具来自父组件)。

有没有人有解决这个问题的想法?

谢谢

4

1 回答 1

1

您可以在组件中而不是在规范中执行此操作

@DragSource(dragtype, sourceSpec, cnt => ({
  connectDragSource: cnt.dragSource(),
}))
export default class Dragable extends React.Component {
  state = {
    canDrag: false,
  }
  render() {
   const { connectDragSource } = this.props;
   const { canDrag } = this.state;
   const cntDragSource = canDrag ? connectDragSource : i => i;
    return cntDragSource(
     <div className="drag-target" />
    )
  }
}
于 2017-11-06T09:49:04.773 回答