Adds a new state persistence mechanisms to all of the navigators via createNavigationContainer
There are two new props that you can provide to a navigation container: `storageKey` and `renderLoading`.
`storageKey` is the string key to be used with AsyncStorage while saving and persisting navigation state. To disable persistence, set to null.
`renderLoading` allows you to render something while the navigator re-hydrates its state and loads its initial URL. By default this returns null, but Expo users will want to render a <AppLoading /> component for smooth app launches
There is also functionality in this PR to observe errors that come from re-hydrating state, and gracefully recover by dispatching an init action.
Also this revises the init action to *reset* the navigation state, rather than preserve the previous state.
React Navigation
React Navigation is born from the React Native community's need for an extensible yet easy-to-use navigation solution based on Javascript.
Installation
Since the library is a JS-based solution, to install the latest version of react-navigation you only need to run:
yarn add react-navigation
or
npm install --save react-navigation
Documentation
- The best way to learn is to follow the Getting started guide. It guides you through the fundamentals of React Navigation.
- The documentation includes solutions for common use cases in the "How do I do ...?" section, such as tab navigation and Redux integration.
- If you need to build your own navigator, there's a section for that too.
- The API reference lists all public APIs.
- The Community Resources document lists some other resources submitted to us by people who use React Navigation. Feel free to open a pull request to add your resource to the list.
- You can contribute improvements to the documentation in the website repository.
Try it out
You can also try out the Navigation Playground app to get a sense for some of the tools built in to React Navigation. The "Fundamentals" in the documentation also include examples you can play with.
FAQs
I'm having troubles using the library, what can I do?
See the help page.
How can I help?
See our Contributing Guide!
Is this the only library available for navigation?
Certainly not! There other libraries - which, depending on your needs, can be better or worse suited for your project. Read more in the alternative libraries documentation, and read React Navigation's pitch & anti-pitch to understand the tradeoffs.
Can I use this library for web?
Web support was not a priority for the 1.0 release, but the architecture of this library allows for it (and it has worked in the past). If you would like to lead this charge, please reach out with your ideas for how to move forward on the RFCs repository and we would be happy to discuss.
Code of conduct
This library has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.
License
React-navigation is licensed under the BSD 2-clause "Simplified" License.