【问题标题】:react-big-calendar: How make a popup with onSelectEventreact-big-calendar:如何使用 onSelectEvent 制作弹出窗口
【发布时间】:2021-08-04 20:23:48
【问题描述】:
<DragAndDropCalendar
        selectable
        localizer={localizer}
        events={events}
        style={{ height: 1550 }}
        onSelectSlot={(e) => handleSelect(e)}
        onSelectEvent={(e) => handleSelectedEvent(e)}
/>

函数如下:

    function handleSelectedEvent (e) {
    <div className="modal">
      {console.log(e)}
    </div>
  }

问题:

模态不会显示,它会显示在控制台日志中,但后来我尝试将它放入模态,它只是不呈现。我已经尝试过 react-responsive-modal 以及其他引导模式,但它就是不渲染。

【问题讨论】:

    标签: reactjs react-big-calendar


    【解决方案1】:
    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 中,你必须这样做:

    .modal-show {
      display: block;
    }
    
    .modal-hide {
      display: none;
    }
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    • 有没有人能够通过右键单击来完成这项工作? handleSelectedEvent 似乎没有为我触发。
    猜你喜欢
    • 2022-06-29
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    相关资源
    最近更新 更多