Как вызвать вспомогательную функцию объекта? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть объект, у которого есть вспомогательные функции, которые будут планировать уведомления в зависимости от того, в какое время.Я вызываю функцию в действии с избыточностью после того, как пользователь нажимает кнопку, чтобы запланировать уведомление.

Я получаю сообщение об ошибке "undefined не является объектом (оценивает _'ScheduleNotification.default.startReminder ')"

Я пытался вызвать его при нажатии кнопки, а также в действии, и я получаю одну и ту же ошибку оба раза.

Мой объект уведомлений о расписании -

export const scheduleNotification = {
  startReminder: {
    async function(item) {
      const permission = await registerForPushNotificationsAsync();
      if (permission) {
        Notifications.scheduleLocalNotificationAsync(
          {
            title: 'Reminder:',
            body: `${item.text} now`
          },
          {
            time: item.date
          }
        );
      } else {
        console.log('cannot send notification without permission.');
      }
    }
  },
}

Тогда мойдействие, при котором я вызываю функцию -

export const startReminder = (item) => {
  return (dispatch) => {
    dispatch({
      type: START_REMINDER,
      id: item.id
    });
    scheduleNotification.startReminder(item);
  };
};

Вместо того, чтобы планировать уведомление, когда я нажимаю кнопку, появляется сообщение об ошибке.Я могу предоставить больше кода, если это необходимо.Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 24 сентября 2019

Вы сделали scheduleNotification.startReminder объектом с одним свойством - безымянной функцией.В вашем коде слишком много фигурных скобок.То, что вы хотите, вероятно, это:

export const scheduleNotification = {
  async startReminder(item) {
    const permission = await registerForPushNotificationsAsync();
    if (permission) {
      Notifications.scheduleLocalNotificationAsync({
        title: 'Reminder:',
        body: `${item.text} now`
      }, {
        time: item.date
      });
    } else {
      console.log('cannot send notification without permission.');
    }
  },
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...