首页 > 解决方案 > 如何使用 Expo SDK 日历 API 在 Android 中获取默认日历?

问题描述

已解决:使用 await 和一个变量来存储承诺。

我正在尝试使用 react-native 和 expo sdk 将事件插入到 android 设备上的默认日历中。createEventAsync()以前,可以使用第一个参数为Calendar.DEFAULT的方法创建事件,但不再支持。我可以使用该getCalendarsAsync()方法获取所有日历,但我要返回的对象没有任何意义。一些代码:

async addReservationToCalendar(date) {
    await this.obtainCalendarPermission();
    console.log(Calendar.getCalendarsAsync());
}

有人建议我可以遍历响应以找到一个将isPrimary属性设置为 true 的日历,但我不知道我是如何实现这一点的。我已经获得许可,并且收到以下承诺作为回应。 Promise { "_40": 0, "_55": null, "_65": 0, "_72": null, }.
我需要做什么才能使用 expo Calendar API 在 android 设备上设置日历事件?

标签: react-nativereact-native-androidexpoandroid-calendar

解决方案


因为这是一个承诺,你需要这样做

Calendar.getCalendarsAsync().then(calendars => console.log(calendars))

推荐阅读