#javascript #reactjs #fullcalendar #fullcalendar-5
Вопрос:
Я пытаюсь понять, как заблокировать все прошлые дни в моем календаре, чтобы пользователи не могли назначить встречу, и я не могу заставить ее работать.
Например, сегодня 8 ноября, я хочу заблокировать выбор всех предыдущих дней.
Я посмотрел в Интернете, и там много статей о том, как это сделать с другими языками, но я использую оболочку ReactJS FullCalendar, у которой нет возможности перейти в реквизит, чтобы справиться с этим. Я посмотрел там документацию и попытался поиграть с API, но не смог в этом разобраться.
Вот мой код:
import React, { useState, useEffect } from "react"; import FullCalendar from "@fullcalendar/react"; import dayGridPlugin from "@fullcalendar/daygrid"; import interactionPlugin from "@fullcalendar/interaction"; // Time Slots const ScheduleAppointment = (props) =gt; { const someMethod = () =gt; { let calendarApi = calendarRef.current.getApi(); let changeMinDate = (calendarApi.currentDataManager.data.dateProfile.validRange = { start: "2021-11-08", end: null }); console.log("calendarapi11 is..", changeMinDate); console.log("calendarapi222 is..", calendarApi); }; useEffect(() =gt; { someMethod(); }, []); return ( lt;div className="fluid-container"gt; lt;FullCalendar plugins={[dayGridPlugin, interactionPlugin]} initialView="dayGridMonth" dateClick={handleDateClick} selectable={true} ref={calendarRef} // this doesn't work I have to manually get into the api via refs //validRange = { //start: '2021-11-08', //end: null //} /gt; lt;/divgt; ); }; export default ScheduleAppointment;
Комментарии:
1. Каким образом действительный диапазон не работает? Вы получаете сообщение об ошибке?
2. Я не получаю ошибки, но когда я смотрю в FullCalendar для ReactJS, даты, которые я указал в начале, не выделяются серым цветом. Мне нужно отметить, что я использую оболочку ReactJS fullcalendar, в которой я не узнал, как изменить допустимый диапазон в любом месте Google, кроме как через api через ссылки.
Ответ №1:
Я бы ожидал, что
validRange = {{ start: '2021-11-08', end: null }}
должно сработать.
Внешний набор { }
s обозначает начало и конец значения свойства — точно так же plugins
, как, например, в свойстве. Тогда внутренние являются частью объекта JS, содержащего данные диапазона.
Комментарии:
1. Это работает! Мне не хватало дополнительного набора фигурных скобок, спасибо! 🙂