не определено не является объектом this.props.navigation (onOpened уведомление) - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь перемещаться при открытии уведомления, которое находится в моем app.js, но оно говорит:

undefined не является объектом (this.props.navigation)

Я использую реагирующую навигацию для навигации между экранами.

app.js:

class App extends Component {
    constructor(props) {
    super(props);
    OneSignal.init('my-id');

    OneSignal.addEventListener('received', this.onReceived);
    OneSignal.addEventListener('opened', this.onOpened);
    OneSignal.addEventListener('ids', this.onIds);
    OneSignal.configure();  // triggers the ids event
  }

  componentWillUnmount() {
      OneSignal.removeEventListener('received', this.onReceived);
      OneSignal.removeEventListener('opened', this.onOpened);
      OneSignal.removeEventListener('ids', this.onIds);
  }

  onReceived(notification) {
      console.log('Notification received: ', notification);
  }

  onOpened(openResult) {
      console.log('Message: ', openResult.notification.payload.body);
      console.log('Data: ', openResult.notification.payload.additionalData);
      console.log('isActive: ', openResult.notification.isAppInFocus);
      console.log('openResult: ', openResult);
      this.props.navigation.navigate('EventHistoryComponent',openResult);
  }

  onIds(device) {
      console.log('Device info: ', device);
  }

  render() {
    return (
      <Provider store={store}>
        <AppNavigator />
      </Provider>
    );
  }
}

export default App;

1 Ответ

0 голосов
/ 26 июня 2019

this.props.navigation существует только на экранах вашего AppNavigator. Если вы хотите перемещаться за пределы компонентов, вложенных в AppNavigator, react-navigation имеет руководство для этого .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...