首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React ContextMenu和Draggable

React ContextMenu和Draggable
EN

Stack Overflow用户
提问于 2021-03-27 20:32:44
回答 1查看 69关注 0票数 1

我正在尝试使用react-draggablereact-contextmenu在ReactJS中制作一个带有自定义上下文菜单的可拖动组件,但没有成功。我已经成功地使按钮可拖动,但当我添加上下文菜单时,它禁用了可拖动,只有上下文菜单起作用。我很乐意以某种方式将它们组合在一起,谢谢!

代码语言:javascript
复制
import React, { useState } from 'react';
import Draggable from 'react-draggable';
import {ContextMenu, ContextMenuTrigger} from 'react-contextmenu';

export default function DraggableButton() {
  const [deltaPosition, setDeltaPosition] = useState({ x: 0, y: 0 });  

  const handleDrag = (e, ui) => {
  const { x, y } = deltaPosition;
  setDeltaPosition({
    x: x + ui.deltaX,
    y: y + ui.deltaY,
  });
 };  

return (
  <div>        
    <Draggable
      scale={1}
      onDrag={handleDrag}
      bounds="parent"
      defaultPosition={{ x: 40, y: 40 }}
      allowAnyClick={false}
    >
      <ContextMenuTrigger id='trigger' >
          <div className="w-24">
              <button className="btn btn-primary">
                  click me
              </button>
          </div>
      </ContextMenuTrigger>
    </Draggable>

    <ContextMenu id='trigger'>
        <h1>test</h1>
    </ContextMenu>
  </div>
 );}
EN

回答 1

Stack Overflow用户

发布于 2021-11-09 14:28:14

尝试在ContextMenuTrigger周围包装Draggable

代码语言:javascript
复制
<ContextMenuTrigger id='trigger'>
  <Draggable
      scale={1}
      onDrag={handleDrag}
      bounds="parent"
      defaultPosition={{ x: 40, y: 40 }}
      allowAnyClick={false}>
      <div className="w-24">
        <button className="btn btn-primary">click me</button>
      </div>
  </Draggable>
</ContextMenuTrigger>

注意:上下文菜单在不同的位置打开,如下所示。

把这个留在这里,因为它可能会帮助其他人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66831391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档