#react-native #firebase-cloud-messaging #react-native-android #react-navigation
#firebase-cloud-messaging #react-native #реагировать-навигация
Вопрос:
Я успешно внедрил firebase Cloud messaging в своем приложении. Но когда появляется новое уведомление, мое приложение должно открыться, а затем перенаправить на страницу уведомлений с app.js . Приложение отображает информацию о журнале при нажатии на уведомление, но когда я пытаюсь this.props.navigator.push("Notification");
использовать эту функцию, отображается ошибка undefined is not an object(evaluating this.props.navigation.push)
Я предполагаю, что это потому, что я еще не инициализировал свой stacknavigator, но я не знаю этого наверняка. Я использую react-navigation в своем приложении.
Вот функция в моем app.js это вызывается при нажатии на уведомление.
const notificationOpen = await firebase.notifications().getInitialNotification();
if (notificationOpen) {
const { title, body } = notificationOpen.notification;
console.log('getInitialNotification:');
this.props.navigator.push("Notification");
}
Кроме того, код навигации не работает даже в моей функции рендеринга в app.js поэтому я думаю, что props не инициализируется в app.js .
Кто-нибудь может помочь мне исправить это и отправить меня на страницу уведомлений?
Комментарии:
1. Приложите свой код
app.js
тоже в вопросе.
Ответ №1:
Учитывая, что у вас есть маршрут, вызываемый Notification
в вашем навигаторе стека, а также у вас app.js
есть доступ к navigation
реквизиту навигатора, тогда вы можете захотеть использовать this.props.navigation.navigate('Notification')
в случае, если вы используете react-navigation
.
Проблема с вашим кодом заключается в следующем.props.navigation не имеет никакого метода с именем push, поэтому он наверняка выдаст неопределенную ошибку. Чтобы узнать больше о навигации, рассмотрите этот документ .
Комментарии:
1.
this.props.navigation.navigate('Notification')
также возвращает тот же результат. Как я могу передать свой app.js доступ к реквизиту навигатора? Я использую навигатор стека с навигатором ящика, который инициализируется в другом компоненте nacigation.2. В такой ситуации я заставляю своих слушателей уведомлений переходить в базовый компонент, содержащий навигатор, отличный от app.js таким образом, у вас может быть ссылка навигатора, а затем вы можете использовать навигационные рассылки для перехода к определенному маршруту.