Как управлять getInitialNotification (), когда приложение закрывается с помощью React Native Firebase - PullRequest
0 голосов
/ 06 мая 2020

Моя версия:

"@react-native-firebase/app": "^6.7.1",
"@react-native-firebase/messaging": "^6.7.1",
"react": "16.8.6",
"react-native": "0.60.5",

Я использую redux для управления значением и перехода на другой экран.

Вот код моей домашней страницы под функцией рендеринга:

if (notificationOpen) {
  if (notificationTag === 'Mail') {
    navigation.navigate('MailScreen');
  } else if (notificationTag === 'Bill') {
    navigation.navigate('BillboardScreen');
  }
  defaultNotificationOpen(); // set notificationOpen to false
}

Я запускаю уведомление при закрытии приложения по этому коду:

messaging()
      .getInitialNotification()
      .then(remoteMessage => {
        console.log('remoteMessage is', remoteMessage);
        if (remoteMessage) {
          console.log(
            'Notification caused app to open from quit state:',
            remoteMessage.notification,
          );

          const notificationTag = remoteMessage.notification?.title;

          console.log('notificationTag:', notificationTag);
          dispatch({ type: NOTIFICATION_TAG, notificationTag });
          dispatch({ type: NOTIFICATION_OPEN, notificationOpen: true} );
        }
      });

Это мой единственный способ получить уведомление при закрытии приложения.

Но моя проблема в том, если я просто перезагрузите мое приложение (без уведомления), getInitialNotification() все еще работает, и notificationOpen снова будет истинным.

Как избежать проблемы?

...