在 React Native 日历选择器中,我想通过提供一个函数来禁用某些日期

Posted

技术标签:

【中文标题】在 React Native 日历选择器中,我想通过提供一个函数来禁用某些日期【英文标题】:In React Native calendar picker, I want to disable some dates by giving a function 【发布时间】:2021-05-15 04:15:33 【问题描述】:

我一直在研究一个日历主题(react-native-calendar-picker)。如果这不起作用,您能否建议我使用日期选择器依赖项,该依赖项具有范围可用性、禁用日期,并在可能的情况下禁用周末。我正在使用时刻。

我的代码:

import CalendarPicker from 'react-native-calendar-picker';
import moment from 'moment';
<CalendarPicker
          startFromMonday=true
          allowRangeSelection=true
          minDate=minDate
          maxDate=maxDate
          //disabledDates=[new Date('13/02/2021'), new Date('14/02/2021'), new Date('14/02/2021')] tried so many forms too
          disabledDates=  Date(2021,2,13)
          width=250
          height=250
          maxRangeDuration=10
          todayBackgroundColor="#f2e6ff"
          selectedDayColor="#7300e6"
          selectedDayTextColor="#FFFFFF"
          onDateChange=this.onDateChange
        />

【问题讨论】:

我个人使用了react-native-calendars (npmjs.com/package/react-native-calendars),它工作得非常好,文档也写得很好(它也非常可定制)。也许这对你有帮助 @dianaqqq 非常感谢你,我得到了所有想要的功能。你能介意如何编写一个函数来禁用从 12-02-2021 到 14-03-2021 的时间段. 我检查了您提到的库中的问题,我认为问题在于您提供的禁用日期格式不正确。它们应该是时间戳,像这样2021-02-12T10:01:13+02:00,可以像这样得到moment('2021-02-12').format()(github.com/stephy/CalendarPicker/issues/263) 【参考方案1】:

试试这个:

<CalendarPicker
    ...
    disabledDates=date => 
          let startDate = ...this.state.selectedStartDate
          let endDate =...this.state.selectedEndDate
          if(date.isBetween(startDate, endDate))
                 return true
           else 
                return false
          
    
    // or use it as an array 

我相信你也可以传递一个函数,但我还没有尝试过。

【讨论】:

以上是关于在 React Native 日历选择器中,我想通过提供一个函数来禁用某些日期的主要内容,如果未能解决你的问题,请参考以下文章

React-Native 日历议程没有用于 Detox 的 testID

如何从 api 动态填充日历标记的日期 - React Native,redux

如何在 jquery ui 日期选择器中同时禁用周末和选定日期?

React-native - 如何创建无限选择器

如何在 iOS 中使用 React Native 保存下载的文件并在文件应用程序中查看?

如何在 React Native 上进行选择?