Called once the app is launched. This event is used to set the Application’s initial layout - after which the app is ready for user interaction.
const appLaunchedListener = Navigation.events().registerAppLaunchedListener(() => {
});
RNN automatically unsubscribes components when they unmount, therefore unsubscribing isn’t actually mandatory if you subscribed in componentDidMount.
But you can use the following method to unsubscribe manually.
appLaunchedListener.remove();
Called each time this component appears on screen (attached to the view hierarchy)
class MyComponent extends Component {
  componentDidMount() {
    this.navigationEventListener = Navigation.events().bindComponent(this);
  }
  componentWillUnmount() {
    // Not mandatory
    if (this.navigationEventListener) {
      this.navigationEventListener.remove();
    }
  }
  componentDidAppear() {
  }
}
This event can be observed globally as well:
// Subscribe
const screenEventListener = Navigation.events().registerComponentDidAppearListener(({ componentId, componentName, passProps }) => {
});
...
// Unsubscribe
screenEventListener.remove();
| Parameter | Description | 
|---|---|
| componentId | Id of the appearing component | 
| componentName | Registered name used when registering the component with Navigation.registerComponent() | 
| passProps | props passed to the component | 
Called each time this component disappears from screen (detached from the view hierarchy)
class MyComponent extends Component {
  componentDidMount() {
    this.navigationEventListener = Navigation.events().bindComponent(this);
  }
  componentWillUnmount() {
    // Not mandatory
    if (this.navigationEventListener) {
      this.navigationEventListener.remove();
    }
  }
  componentDidDisappear() {
  }
}
This event can be observed globally as well:
// Subscribe
const screenEventListener = Navigation.events().registerComponentDidDisappearListener(({ componentId, componentName }) => {
});
...
// Unsubscribe
screenEventListener.remove();
| Parameter | Description | 
|---|---|
| componentId | Id of the disappearing component | 
| componentName | Registered name used when registering the component with Navigation.registerComponent() | 
The commandListener is called whenever a Navigation command (i.e push, pop, showModal etc) is invoked.
// Subscribe
const commandListener = Navigation.events().registerCommandListener((name, params) => {
});
...
// Unsubscribe
commandListener.remove();
| Parameter | Description | 
|---|---|
| name | The name of the command that was invoked. For example push | 
| params | commandId: Each command is assigned a unique IdcomponentId: Optional, the componentId passed to the commandlayout: Optional, If the command invoked created a screen. Slim representation of the component and its options | 
Invoked when a command finishes executing in native. If the command contains animations, for example pushed screen animation, the listener is invoked after the animation ends.
// Subscribe
const commandCompletedListener = Navigation.events().registerCommandCompletedListener(({ commandId, completionTime, params }) => {
});
...
// Unsubscribe
commandCompletedListener.remove();
| Parameter | Description | 
|---|---|
| commandId | Id of the completed command | 
| completionTime | Timestamp when the command, and consecutive animations, completed. | 
Invoked when modal dismissed.
class MyComponent extends Component {
  componentDidMount() {
    this.navigationEventListener = Navigation.events().bindComponent(this);
  }
  componentWillUnmount() {
    // Not mandatory
    if (this.navigationEventListener) {
      this.navigationEventListener.remove();
    }
  }
  modalDismissed({ componentId, componentName, modalsDismissed }) {
  }
}
This event can be observed globally as well:
// Subscribe
const modalDismissedListener = Navigation.events().registerModalDismissedListener(({ componentId, componentName, modalsDismissed }) => {
});
...
// Unsubscribe
modalDismissedListener.remove();
| Parameter | Description | 
|---|---|
| componentId | Id of the dismissing modal | 
| componentName | Registered name used when registering the component with Navigation.registerComponent() | 
| modalsDismissed | Number of modals dismissed. | 
Invoked only on iOS pageSheet modal when swipeToDismiss flag is set to true and modal swiped down to dismiss.
// Subscribe
const modalAttemptedToDismissListener = Navigation.events().registerModalAttemptedToDismissListener(({ componentId }) => {
});
...
// Unsubscribe
modalDismissedListener.remove();
| Parameter | Description | 
|---|---|
| componentId | Id of the modal tried to dismiss | 
Invoked when screen is popped.
// Subscribe
const screenPoppedListener = Navigation.events().registerScreenPoppedListener(({ componentId }) => {
});
...
// Unsubscribe
screenPoppedListener.remove();
| Parameter | Description | 
|---|---|
| componentId | Id of the modal | 
| modalsDismissed | Number of modal which were dismissed | 
Invoked when a BottomTab is selected by the user.
// Subscribe
const bottomTabEventListener = Navigation.events().registerBottomTabSelectedListener(({ selectedTabIndex, unselectedTabIndex }) => {
});
...
// Unsubscribe
bottomTabEventListener.remove();
Invoked when a BottomTab is long pressed by the user.
// Subscribe
const bottomTabEventListener = Navigation.events().registerBottomTabLongPressedListener(({ selectedTabIndex }) => {
});
...
// Unsubscribe
bottomTabEventListener.remove();
| Parameter | Description | 
|---|---|
| selectedTabIndex | The index of the newly selected tab | 
| unselectedTabIndex | The index of the previously selected tab | 
This event is emitted whenever a TopBar button is pressed by the user.
class MyComponent extends Component {
  componentDidMount() {
    this.navigationEventListener = Navigation.events().bindComponent(this);
  }
  componentWillUnmount() {
    // Not mandatory
    if (this.navigationEventListener) {
      this.navigationEventListener.remove();
    }
  }
  
  navigationButtonPressed({ buttonId }) {
  }
}
This event can be observed globally as well:
// Subscribe
const navigationButtonEventListener = Navigation.events().registerNavigationButtonPressedListener(({ buttonId }) => {
});
...
// Unsubscribe
navigationButtonEventListener.remove();
| Parameter | Description | 
|---|---|
| buttonId | buttonId:idof the pressed button | 
Called when a SearchBar from NavigationBar gets updated.
class MyComponent extends Component {
  componentDidMount() {
    this.navigationEventListener = Navigation.events().bindComponent(this);
  }
  componentWillUnmount() {
    // Not mandatory
    if (this.navigationEventListener) {
      this.navigationEventListener.remove();
    }
  }
  searchBarUpdated({ text, isFocused }) {
  }
}
Called when the cancel button on the SearchBar from NavigationBar gets pressed.
class MyComponent extends Component {
  componentDidMount() {
    this.navigationEventListener = Navigation.events().bindComponent(this);
  }
  componentWillUnmount() {
    // Not mandatory
    if (this.navigationEventListener) {
      this.navigationEventListener.remove();
    }
  }
  searchBarCancelPressed() {
  }
}
Called when preview peek is completed
class MyComponent extends Component {
  componentDidMount() {
    this.navigationEventListener = Navigation.events().bindComponent(this);
  }
  componentWillUnmount() {
    // Not mandatory
    if (this.navigationEventListener) {
      this.navigationEventListener.remove();
    }
  }
  previewCompleted({ previewComponentId }) {
  }
}