首页 > 解决方案 > 反应本机日期选择器不让我选择日期

问题描述

我已经实现了一个 react-native-datepicker,它显示正确并且默认日期是正确的,因为初始状态是:

date: new Date()

但是,当我按下图标选择日期时,所有日期都显示为灰色,您可以滚动,但是当您松开时,它会返回并且不会让您选择日期。

知道为什么我会遇到这个问题吗?

<DatePicker
  style={{width: 200}}
  mode="date"
  date={this.state.date}
  format="DD-MM-YYYY"
  minDate={this.state.date}
  maxDate="01-01-2030"
  confirmBtnText="Confirm"
  cancelBtnText="Cancel"
  onDateChange={(d) => {this.setState({date: d})}}
/>

标签: react-nativedatepicker

解决方案


这是因为new Date()不是您想要的格式。new Date()事实上返回一个Object。很难将此对象转换为所需的格式,但这里有一个指向 Stack Overflow 上的解决方案的链接,以防万一。

我建议使用像moment.js这样的库,因为使用它很容易格式化日期并且你可以做更多的事情。

在您的情况下,我建议将初始状态值替换为:

{date: moment().format('DD-MM-YYYY')}

谨防!设置minDate={this.state.date}将限制您选择较旧的日期,即一旦您选择了未来的日期,您将永远无法再选择之前的日期!


推荐阅读