如何在React Native中呈现DatePickerAndroid组件?

时间:2018-01-30 06:18:32

标签: react-native react-native-android android-datepicker

文档提供了一个示例:

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);
}

但我不清楚我究竟应该在哪里/如何渲染。我把try块放在ComponentDidMount生命周期方法中,但是我得到一个错误“await是一个保留字”。当我删除'await'这个词时,我收到了一个新错误:'不能将一个类称为一个函数'。

目前,我只是在里面返回一个带有DatePickerAndroid的View。

3 个答案:

答案 0 :(得分:2)

我的大脑显然今天没有工作。为了使用它,我刚刚创建了一个TouchableOpacity组件,它触发了一个自定义方法" openUpPicker"其中包含来自文档的示例try块。

openUpPicker() {
        try {
            const {action, year, month, day} = 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);
          }
    }

touchableopacity组件很简单:

                   <TouchableOpacity
                        onPress={()=>this.openUpPicker()}
                    >
                    <Text>hello</Text>
                    </TouchableOpacity>

答案 1 :(得分:1)

VK1的示例对我有用(再次10倍!),只是我必须使用async / await才能获取所选的日期,否则年份,月份等均未定义:

异步 openUpPicker(类型)...

然后

const {操作,年,月,日} = 等待 DatePickerAndroid.open({....

答案 2 :(得分:0)

另外,请查看此datepicker组件https://www.npmjs.com/package/react-native-datepicker