首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在右键单击react-big-calendar时显示菜单

无法在右键单击react-big-calendar时显示菜单
EN

Stack Overflow用户
提问于 2021-06-25 00:40:19
回答 1查看 72关注 0票数 0

我正在尝试显示菜单右击与反应-大-日历和材料用户界面,问题是菜单不能正确地显示在html它的右上角,我的代码是:

代码语言:javascript
复制
  const handleClick = (event) => {
    setAnchorEl(event.currentTarget);
  };
return (
    <>
      <Menu
        id="simple-menu"
        anchorEl={anchorEl}
        keepMounted
        open={Boolean(anchorEl)}
        onClose={handleClose}
      >
        <MenuItem onClick={() => redirectToEvent(selectedEvent)}>
          <ImportContactsTwoToneIcon
            color="primary"
            style={{ marginLeft: "15px" }}
          />{" "}
          פתח אירוע
        </MenuItem>
      
      </Menu>
 <Calendar
        localizer={localizer}
        events={events}
        step={60}
        views={["month", "day"]}
        onSelectEvent={(event, e) => {
        
          redirectToEvent(event);
        }}
        components={
          {
            eventWrapper: ({ event, children }) => (
              <div
                onContextMenu={
                  e => { 
                    setSelectedEvent(event);
                  
                //think this is the issue
                   setAnchorEl(e);
                
                    e.preventDefault();
                  }
                }
              >
                {children}
              </div>
            )
          }
        }
EN

回答 1

Stack Overflow用户

发布于 2021-10-06 19:46:11

Material-UI有一个提供事件的示例,它似乎没有使用anchorEl属性,也没有使用空的“Context Menu”目标对象,而是将一个不同的对象置于状态。

代码语言:javascript
复制
  const handleContextMenu = (event) => {
    event.preventDefault();
    setContextMenu(
      contextMenu === null
        ? {
            mouseX: event.clientX - 2,
            mouseY: event.clientY - 4,
          }
        : // repeated contextmenu when it is already open closes it with Chrome 84 on Ubuntu
          // Other native context menus might behave different.
          // With this behavior we prevent contextmenu from the backdrop to re-locale existing context menus.
          null,
    );
  };

  const handleClose = () => {
    setContextMenu(null);
  };

根据示例的这一部分,您似乎需要相应地更新您的onContextMenu。由于您为菜单设置了多个状态值,包括其定位和引用的selectedEvent,因此您可能希望使用状态的缩减程序。

然后,在<Menu>本身上,它也会改变这种状态。

代码语言:javascript
复制
<Menu
  open={contextMenu !== null}
  onClose={handleClose}
  anchorReference="anchorPosition"
  anchorPosition={
    contextMenu !== null
    ? { top: contextMenu.mouseY, left: contextMenu.mouseX }
    : undefined
  }
>
// menu items
</Menu>

而且,由于您已经将<Menu>放在<Calendar>的容器对象中,容器上的样式是什么,这是否也会影响它的布局?(我不知道Material-UI在这种情况下是否会自动门户它的菜单)

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

https://stackoverflow.com/questions/68119691

复制
相关文章

相似问题

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