每次我选择它时,如何从ReactNative-DatePickerAndroid中获取选定日期?

时间:2017-08-01 16:52:41

标签: android reactjs react-native

是否有一些方法,每次处理数据更改,我选择新的一天,一个月或一年? 我使用react-native-modal-datetime-picker。 这里的解决方案不是我需要的Get selected date from ReactNative-DatePickerAndroid

2 个答案:

答案 0 :(得分:1)

来自ReactNative-DatePickerAndroid docs:

静态打开[选项]

  

返回一个Promise,它将调用一个包含action的对象,   年,月(0-11),用户选择日期的日期

由于ReactNative-DatePickerAndroid在您选择日期后返回一个承诺,您可以使用。所以,

DatePickerAndroid.open({...config})
          .then(function (date) {
            if (date.action !== DatePickerAndroid.dismissedAction) {
              var newDate = new Date(date.year, date.month, date.day);
              console.log('selected date is: ', newDate)
            }
          });

答案 1 :(得分:1)

react-native-modal-datetime-picker 适用于 Android 和 iOS 并每次获取所选日期

DatePickerModal

onConfirm - 一旦从选择器中选择了日期,就可以在此获取所选日期并对其进行修改。

要关闭日历,请在 onCancel 中隐藏选择器

可以使用 moment 格式化所选日期

setFormattedDate(moment(sdate).format('yyyy-MM-DDT13:00:00.000Z'))

const showDatePicker = () => {
setDatePickerVisibility(true);
  };

  const hideDatePicker = () => {
setDatePickerVisibility(false);
  };

  const handleConfirm = (date) => {
hideDatePicker();

var currentMonth = date.getMonth() + 1;
var currentDate = date.getDate();

if (currentMonth < 10) { currentMonth = '0' + currentMonth; }
if (currentDate < 10) { currentDate = '0' + currentDate; }

let sdate = date.getFullYear()+"-" +currentMonth + "-" + currentDate ;
setDate(sdate)

  };


   <DateTimePickerModal
    style={{ width: 300, alignSelf: "center" }}
    isVisible={isDatePickerVisible}
    mode="date"
    minimumDate={new Date()}
    onConfirm={handleConfirm}
    onCancel={hideDatePicker}
  />

 

详细说明和完整代码 - https://github.com/ritzblogs/reactnative-datetimepicker