reactjs - React,拖动后如何防止执行点击事件?

标签 reactjs onclick drag-and-drop draggable

我有 Draggable 元素,在它的内部,我有一个带有 onClick 事件的组件。拖动结束时,触发点击事件。 我的可拖动元素看起来像这样。我使用了一个名为 react-draggable 的包.

<Draggable
    position={this.state.realPosition}
    onStart={this.handleStart}
    onDrag={this.handleDrag}
    onStop={this.handleStop}
    disabled={this.state.isDialogOpen}
    bounds="parent">
      <div style={{"width":"fit-content"}}>
        <Helmet getDialogStatus={this.handleClick} />  
      </div>
</Draggable>

我在 Helmet 组件中有 onClick 事件,它会打开一个对话框。当我拖动并释放元素时,此对话框打开。我的问题是如何防止此操作以及如何将它们与事件分开?

谢谢。

最佳答案

const [isDragging, setIsDragging] = useState<any>(false);

const eventControl = (event: { type: any; }, info: any) => {


    if (event.type === 'mousemove' || event.type === 'touchmove') {
      setIsDragging(true)
    }

    if (event.type === 'mouseup' || event.type === 'touchend') {
      setTimeout(() => {
        setIsDragging(false);
      }, 100);

    }
  }

然后,

<Draggable
    bounds="parent"
    onDrag={eventControl}
    onStop={eventControl}
> ...

关于reactjs - React,拖动后如何防止执行点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64958986/

相关文章:

jquery - 拖放到特定的 div 后拖放更改样式

javascript - React 组件中的 Async Meteor.call

reactjs - 我应该使用一种或多种操作类型来表示此异步操作吗?

javascript - 如何使用导入的函数作为 promise 。 Object(...)(...).then 不是函数

android - ProgressDialog 关闭 onClick

jquery - Google Chrome : jquery. ajax 在 onclick-event ("failed to load resource"内失败)

reactjs - 奇怪的 IE11 行为 "Object doesn' t 支持属性或方法 'includes' ”

javascript - 当第一个和第二个文本输入值没有 ID 时,更改它们

windows - 将任何东西拖到桌面上

java - JavaFX 拖放事件