如何从反应中的功能打开对话框?
How to open dialog from a function in react?
我目前正在使用这个 code 创建我的调度程序应用程序。
现在这是我的代码 - Scheduler.js
class CalendarScheduler extends Component {
state = {
viewModel: schedulerData,
showBookingDialog: true,
}
handleClickOpen = () => {
this.setState( (prevState) => {
return {showBookingDialog : !prevState.showBookingDialog};
} )
};
handleClose = () => {
this.setState({ showBookingDialog: false });
};
render() {
const { viewModel } = this.state;
let schedulerData = this.state.viewModel;
schedulerData.setResources(this.props.rooms);
return (
<div>
<Scheduler schedulerData={viewModel}
prevClick={this.prevClick}
nextClick={this.nextClick}
onSelectDate={this.onSelectDate}
newEvent={this.newEvent}
/>
</div>
)
}
在 Scheduler.js 中,我有一个用于 newEvent 的函数:
newEvent = (schedulerData, slotId, slotName, start, end, type, item) => {
return(
<BookingDialog
open={this.state.showBookingDialog}
onClose={this.handleClose}
/>
);
}
我的问题是,为什么当我点击日程安排程序创建新活动时,它没有打开我的 BookingDialog?
前面的newEvent函数使用了window.confirm,可以在第93行找到here。
您可以在 Scheduler 组件中设置一个状态变量来显示 BookingDialog,并在 newEvent 函数中将该状态变量设置为 'true'。然后在 scheduler 组件中,根据该状态变量查看 BookingDialog。
newEvent = (schedulerData, slotId, slotName, start, end, type, item) => {
this.setState({showBookingDialog:true})
}
并且在 Scheduler 组件中
{this.state.showBookingDialog && <BookingDialog
open={this.state.showBookingDialog}
onClose={this.handleClose}
/>}
我目前正在使用这个 code 创建我的调度程序应用程序。
现在这是我的代码 - Scheduler.js
class CalendarScheduler extends Component {
state = {
viewModel: schedulerData,
showBookingDialog: true,
}
handleClickOpen = () => {
this.setState( (prevState) => {
return {showBookingDialog : !prevState.showBookingDialog};
} )
};
handleClose = () => {
this.setState({ showBookingDialog: false });
};
render() {
const { viewModel } = this.state;
let schedulerData = this.state.viewModel;
schedulerData.setResources(this.props.rooms);
return (
<div>
<Scheduler schedulerData={viewModel}
prevClick={this.prevClick}
nextClick={this.nextClick}
onSelectDate={this.onSelectDate}
newEvent={this.newEvent}
/>
</div>
)
}
在 Scheduler.js 中,我有一个用于 newEvent 的函数:
newEvent = (schedulerData, slotId, slotName, start, end, type, item) => {
return(
<BookingDialog
open={this.state.showBookingDialog}
onClose={this.handleClose}
/>
);
}
我的问题是,为什么当我点击日程安排程序创建新活动时,它没有打开我的 BookingDialog?
前面的newEvent函数使用了window.confirm,可以在第93行找到here。
您可以在 Scheduler 组件中设置一个状态变量来显示 BookingDialog,并在 newEvent 函数中将该状态变量设置为 'true'。然后在 scheduler 组件中,根据该状态变量查看 BookingDialog。
newEvent = (schedulerData, slotId, slotName, start, end, type, item) => {
this.setState({showBookingDialog:true})
}
并且在 Scheduler 组件中
{this.state.showBookingDialog && <BookingDialog
open={this.state.showBookingDialog}
onClose={this.handleClose}
/>}