首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-big-calendar:如何使用onSelectEvent创建弹出窗口

react-big-calendar:如何使用onSelectEvent创建弹出窗口
EN

Stack Overflow用户
提问于 2021-08-04 20:23:49
回答 1查看 315关注 0票数 0
代码语言:javascript
复制
<DragAndDropCalendar
        selectable
        localizer={localizer}
        events={events}
        style={{ height: 1550 }}
        onSelectSlot={(e) => handleSelect(e)}
        onSelectEvent={(e) => handleSelectedEvent(e)}
/>

下面是函数:

代码语言:javascript
复制
    function handleSelectedEvent (e) {
    <div className="modal">
      {console.log(e)}
    </div>
  }

问题是:

模式不会显示,它确实显示在控制台日志中,但后来我尝试将其放入模式中,它就是不能渲染。我尝试过react-responsive modal和其他引导模式,但它就是不能渲染。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-16 08:26:04

代码语言:javascript
复制
import React, { useState} from 'react'

function Calendar() {
   const [selectedEvent, setSelectedEvent] = useState(undefined)
   const [modalState, setModalState] = useState(false)

   const handleSelectedEvent = (event) => {
      setSelectedEvent(event)
      setModalState(true)
   }

   const Modal = () => {
       return (
          <div className={`modal-${modalState == true ? 'show' : 'hide'}`}>
             // Here you define your modal, what you want it to contain. 
             // Event title for example will be accessible via 'selectedEvent.title'
          </div>
       )
   }

   return (
      <div>
         {selectedEvent && <Modal />}
         <Calendar
            selectable
            localizer={localizer}
            events={events}
            style={{ height: 1550 }}
            onSelectSlot={(e) => handleSelect(e)}
            onSelectEvent={(e) => handleSelectedEvent(e)}
         />
      </div>
   )
}

然后,在css中,您必须执行以下操作:

代码语言:javascript
复制
.modal-show {
  display: block;
}

.modal-hide {
  display: none;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68657646

复制
相关文章

相似问题

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