【发布时间】:2019-05-23 10:01:16
【问题描述】:
目前使用 ReactJS 设置 FullCalendar。我可以填充我的日历和事件,但在使用 eventClick={} 时遇到问题。如何使用eventClick={} 填充模式并检索事件信息?
当点击事件时,我设法让模式出现,但我似乎无法通过任何数据
当前代码
constructor() {
super();
this.state = {
modal: false
};
this.toggle = this.toggle.bind(this);
};
toggle() {
this.setState(prevState => ({
modal: !prevState.modal
}));
}
----
//I then render the calendar and modal inside the div.
<div id="calendar" class="container" ref="calendar">
<FullCalendar
header={{
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth, listWeek'
}}
selectable={true}
height={650}
aspectRatio={2}
plugins={[interaction, dayListPlugin, dayGridPlugin, bootstrapPlugin]}
themeSystem="bootstrap"
weekends={false}
displayEventTime={true}
timeZone="UTC"
events={jsonFeed}
eventRender={this.handleEventRender}
eventClick={this.toggle}
/>
<Modal isOpen={this.state.modal} toggle={this.toggle} className={this.props.className}>
<ModalHeader toggle={this.toggle}>testTitle</ModalHeader>
<ModalBody>test body</ModalBody>
<ModalFooter>
<Button color="primary" onClick={this.toggle}>Do Something</Button>{' '}
<Button color="secondary" onClick={this.toggle}>Cancel</Button>
</ModalFooter>
</Modal>
</div>
所以在这里,当我单击事件/关闭按钮时,模式会出现和消失,但我无法通过单击事件传递数据。我希望有人能提供帮助。我似乎无法做到这一点。
【问题讨论】:
-
<FullCalendar不是有效的 JavaScript。你在使用一些插件吗?如果有,请说明它是什么。我也看不出这与 NodeJS 有什么关系,NodeJS 是一个服务器端框架,不能在浏览器中运行。 -
你可能在用这个吗? fullcalendar.io/docs/react 。如果是这样,那么也许您的意思是在您的问题中说“ReactJS”而不是“NodeJS”??
-
@ADyson 我确实在使用 React,我在另一个项目的大脑上有节点。哎呀
-
没问题。好的,所以我给你的链接的“回调”部分解释了如何处理诸如 eventClick 之类的回调。我建议您通过您可以定义的函数来处理它,并使用它来切换您的模式,并使用事件数据填充模式(作为回调的参数提供 - 请参阅fullcalendar.io/docs/eventClick)。
-
@ADyson 谢谢,你知道我会如何渲染它吗?所以我已经把它改成了一个函数,但我就是不知道要写什么来渲染它?反应DOM?但后来我不知道我需要传递什么才能让它显示出来。
标签: javascript reactjs fullcalendar fullcalendar-4