如何在DatePickerAndroid中使用dateSetAction()和dismissedAction()方法?

时间:2018-12-02 07:05:56

标签: reactjs react-native

documentation不够理解,也没有任何示例可以理解。为什么以及如何在ng build --prod中使用dateSetAction()dismissedAction()方法?

3 个答案:

答案 0 :(得分:1)

简单说明:

dateSetAction是一种操作,告诉您在日期选择器中选择的日期。

dismissedAction也是另一种类型的操作,告诉您日期选择器对话框已关闭/关闭。

示例:

async openAndroidDatePicker() { 
   try {
     const {action, year, month, day} = await DatePickerAndroid.open({
       date: new Date(2020, 4, 25)
     });
     if (action === DatePickerAndroid.dismissedAction) {
         console.log('Date picker has been dismissed/closed');
     } else if (action === DatePickerAndroid.dateSetAction) {
         console.log('Date has been selected');
     }
    } catch ({code, message}) {
      console.warn('Cannot open date picker', message);
   }
}

答案 1 :(得分:1)

这些基本上是内部getter函数/方法,它们在内部被调用以确定是否选择了date。这两个方法在DatePickerAndroid类中定义为:

 static get dateSetAction() {
   return 'dateSetAction';
 }

 static get dismissedAction() {
   return 'dismissedAction';
 }

您可以访问this页以了解这些方法。

答案 2 :(得分:0)

如果用户选择了日期,则对象包含操作,年,月(0-11),天。如果用户关闭了对话框,则Promise仍将得到解决,操作为 DatePickerAndroid.dismissedAction ,而所有其他键都未定义。在读取值之前,请务必检查操作是否正确。

  async openAndroidDatePicker() { 
  try {
  const {action, year, month, day} = await DatePickerAndroid.open({
    // Use `new Date()` for current date.
    // May 25 2020. Month 0 is January.
    date: new Date(2020, 4, 25)
  });
  if (action !== DatePickerAndroid.dismissedAction) {
    // Selected year, month (0-11), day
  }
} catch ({code, message}) {
  console.warn('Cannot open date picker', message);
}
}