我尝试使用bootstrap 5(不是React-Bootstrap库)在React中的FullCalendar组件中点击一天时打开一个模态窗口。
我尝试使用jQuery的$通过模式访问,但我得到这个错误消息“$不是一个函数”。我尝试在引导库之前导入JQuery库,添加“import $ from Jquery”行,但没有任何效果。我也有这个实现,但它不工作,所以我不知道我错过了什么。
const CalendarContainerPage = () => {const modalRef = useRef(null);
const [showModal, setShowModal] = useState(false);
const select = (info) => {
alert('selected ' + info.start + ' to ' + info.end);
}
console.log(showModal)
const handleDayClick = () => {
setShowModal(true);
};
const handleCloseModal = () => {
setShowModal(false);
};
useEffect(() => {
if(showModal){
modalRef..toggle()
}
},[showModal])
const randomColor= "#"+((1<<24)*Math.random()|0).toString(16) + "";
const eventObject = [
{ // this object will be "parsed" into an Event Object
groupId: 'blueEvents',
title: 'Congress', // a property!
start: '2023-06-21',
end:'2023-06-22',
startRecur: '2023-06-18T09:00:00',
endRecur: '2023-06-29T18:00:00',
startTime: '12:30:00', // a property!
endTime: '13:30:00', // a property! ** see important note below about 'end' **
daysOfWeek: [ '1','2' ],
display: 'block',
color : randomColor,
}
]
console.log(eventObject);
const eventClick = (info) => {
alert('Event: ' + info.event.title)
}
return(
<div className='calendarBoard'>
<FullCalendar
plugins={[ dayGridPlugin, interactionPlugin ]}
locale = {esLocale}
initialView="dayGridMonth"
height='100%'
selectable={true}
select = { handleDayClick}
events = {eventObject}
eventClick={eventClick}
handleWindowResize={true}
/>
{showModal && (<div className="modal " ref={modalRef} id="ModalDay" tabindex="-1" aria-labelledby="ModalDay" aria-hidden="true" >
<div className="modal-dialog">
<div className="modal-content">
<div className="modal-header">
<h5 className="modal-title" id="exampleModalLabel"> "text"</h5>
<button type="button" className="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div className="modal-body px-4">
Modal
</div>
<div className="modal-footer">
<button type="button" className="btn btn-secondary" data-bs-dismiss="modal" onClick={handleCloseModal}>Cerrar</button>
<button type="button" className="btn btn-primary">Guardar Cambios</button>
</div>
</div>
</div>
</div>)}
</div>
)
}
export default CalendarContainerPage
字符串
我也试过使用useRef,但我不确定我是否正确使用它。(我是React新手)
2条答案
按热度按时间q1qsirdb1#
是否导入了必要的依赖项?让我们检查以下要求:
安装Bootstrap及其依赖项:
字符串
在文件中导入必要的组件和依赖项:
型
在项目的主文件(index.js或App.js)中导入Bootstrap CSS:
型
修改代码:
型
56lgkhnf2#
为了防止其他人遇到同样的问题,我在这里发布了我找到的解决方案:
字符串
基本上,我使用useEffect中的bootstrap.Modal函数来选择Modal窗口,以确保在完成加载后可以使用modal:
型
并调用当天的点击处理程序:
型
我使用bootstrap 5文档找到了这个解决方案:[https://getbootstrap.com/docs/5.0/components/modal/#methods]