Assets

Assorted improvements

Linking and BackHandler components are supported by react-native-web, so the dummy components were removed. (69bca19)

Slightly improve performance of header component by reducing number of re-renders on push (593bc8a)

Support shorthand route config: StackNavigator({YourRoute: Screen}) (the old approach {YourRoute: {screen: Screen}} still works and should be used when you want to add a path or other configuration for the route).

Fix hardware back button handling at the root of the app on Android. Previously the action would exit the app even if it resulted in going back somewhere in the app. It is now handled as expected. Additionally, subscriptions to BackHandler inside of navigation views now take precedence over the root handler (as expected). (b3bf806)

Breaking changes

Add support for lazy tabs, which is enabled by default. Also add property removeClippedSubviews on TabNavigator config (same place as lazy), which is used in conjunction with lazy -- we use the same technique as react-native-resource-saving-container to reduce memory usage. (3600ecb)

Add headerTransitionPreset to StackNavigator config. This defaults to fade-in-place, a transition style that is similar to the Instagram/Twitter/Facebook apps on iOS. This is a breaking change because previously on iOS the title would slide in. If you would like this behavior again, and an improved version of it, use headerTransitionPreset: 'ui-kit', which more closely resembles UIKit's transition, including masked back button and transitioning the back button label separately from the icon and into the title position. Also fix the header title font weight on iOS. (3c3668c)

Assets

If you are updating from any version below 1.0.0-beta.28 and you use Redux, please follow the Redux integration guide as a few things have changed.

If you provide a custom header component that replaces the back button, you will need to change it from calling this.props.navigation.goBack() to this.props.navigation.goBack(null);. goBack is now provided by default with the current route key as the argument, this prevents actions from being fired twice and it also scopes the back action to the router with that key. goBack(null) is unscoped, so if the deepest currently active router doesn't respond to goBack then the parent will, and so on.

Downloads

We are spicing things up, guys!
🚀
Release cycle will get shorter; we'll release more frequently, and we'll try to at least add a new release note every week - if the version you are using is higher than 19, please check the commits.

Downloads

Over the past month, we have closed over 300 issues, most of them being questions. Understanding the confusion people had around the available API has helped us to develop a bunch of improvements that should make working with React Navigation more pleasant.

Today, we are releasing a new version of React Navigation. It is a huge step towards our first stable release. The API is in a nearly final stage and our focus now is on increasing the overall stability of the library.

The reason this release took so long is that we wanted to better understand the way users are using the library and ship breaking changes (if any) only once.

Downloads

Over the past month, we have closed over 300 issues, most of them being questions. Understanding the confusion people had around the available API has helped us to develop a bunch of improvements that should make working with React Navigation more pleasant.

Today, we are releasing a new version of React Navigation. It is a huge step towards our first stable release. The API is in a nearly final stage and our focus now is on increasing the overall stability of the library.

The reason this release took so long is that we wanted to better understand the way users are using the library and ship breaking changes (if any) only once.