Отмена запланированных уведомлений expo

#javascript #react-native #notifications #expo #expo-notifications

Вопрос:

Я пытаюсь отменить запланированное уведомление от expo, указав идентификатор созданного объекта:

  const newHabit = {
     name: habitName,
     color: updatedColor,
     icon: habitIcon,
     days: isEnabled ? daysCount : null,
     times: isEnabled ? timesCount : null,
     specificDate: isEnabledSpecific ? specificDate : null,
     reminder: isEnabledDate ? reminderTime : null,
     description: description,
     completedDay: null,
     currentDay: 0,
     completed: false,
     completedDates: {},
     timesCompleted: 0,
     progress: 0,
     notificationId: Math.floor(Math.random() * 1000).toString(),
};
 

Я держу методы уведомления в другом, как это:

 export default async function schedulePushNotification(content, trigger, repeats) {
    await Notifications.scheduleNotificationAsync({
        content: content,
        trigger: trigger,
        repeats: repeats,
    });
}

export const cancelPushNotification = async (id) => {
    try {
        await Notifications.cancelScheduledNotificationAsync(id);
    } catch (error) {
        console.error(error);
    }
};
 

Здесь я пытаюсь отменить его с помощью данного идентификатора уведомления: (данные поступают из реквизита от родителя и правильно включают созданный идентификатор уведомления).

  cancelPushNotification(data.notificationId).then(() => {
            if (habitReminderTime !== null) schedulePushNotification(content, trigger, repeats);
            if (habitSpecificDate !== null)
                schedulePushNotification(contentSpecific, triggerSpecific, false);
        });
 

Он по-прежнему отправляет старые уведомления вместе с новыми. Так что это не работает. Есть какие-нибудь идеи?