React DND - 取决于组件状态的canDrag

时间:2017-07-21 09:51:04

标签: reactjs react-dnd

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

我的问题是关于阻止拖动特定状态的组件。但是" canDrag"只能有道具和监视器作为参数。 (monitor.getItem在我的例子中显示为null)并且我不能使用道具,因为它们将出现在每个组件中(因为道具来自父组件)。

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

THX

1 个答案:

答案 0 :(得分:0)

您可以在组件中进行,而不是在规范

中进行
@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" />
    )
  }
}