reactjs - React DND - canDrag 根据组件状态

标签 reactjs react-dnd

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

我的问题是关于防止将组件拖动到特定状态。但“canDrag”只能将 props 和 monitor 作为参数。 (在我的例子中,monitor.getItem 显示为 null)并且我无法使用这些 Prop ,因为这些 Prop 将出现在每个组件中(因为这些 Prop 来自父组件)。

有人有办法解决这个问题吗?

谢谢

最佳答案

您可以在组件中而不是在规范中完成

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

关于reactjs - React DND - canDrag 根据组件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45234529/

相关文章:

javascript - React 元素类型无效

javascript - react /Dnd : Make a component draggable and droppable at the same time

mysql - 如何托管reactJs(前端)NodeJs(后端)和Mysql数据库

javascript - 本地存储在React应用程序中不是持久的

javascript - overflow hidden 后换行文字消失

javascript - 无法分配给 'MyComponent',因为它不是变量(ReactJS 中的 react-dnd 多拖放支持

javascript - React.js 拖放 - Drop 上的无限循环

javascript - 如何彻底删除 Pixi 渲染器、舞台和 Assets ?

javascript - ES6 + React 组件实例方法