The code for the stack is almost the same as v5, with the only differences being the types and the navigation object. To avoid making same changes in 2 places which error-prone, I decided to reuse the same code. Due to the differences, it's not possible to just use it as a dependency, so I followed this approach: - Copy the source files on post install and apply patches to make it work with React Navigation 4 - When we need to make changes, we can make them in v5 repo and update the version here, most of the time it wouldn't need any extra work - If we need to make v4 specific changes, we can change the code in vendor/ and then re-generate the patch with `yarn patch`
2.0 KiB
React Navigation Stack
Stack navigator for use on iOS and Android.
Installation
Open a Terminal in your project's folder and run,
yarn add react-navigation-stack
or
npm install react-navigation-stack
Usage
import { createStackNavigator } from 'react-navigation-stack';
export default createStackNavigator({
Inbox: InboxScreen
Drafts: DraftsScreen,
}, {
initialRouteName: 'Inbox',
});
Development workflow
To setup the development environment, open a Terminal in the repo directory and run the following:
yarn bootstrap
While developing, you can run the example app with Expo to test your changes:
yarn example start
The code in this repo uses the source from @react-navigation/stack and patches it to make it usable in React Navigation 4. If you need to make changes, please send a pull request there.
If the change is specifically related to React Navigation 4 integration, change the files in src/vendor and then run yarn patch to update the patch file with the latest changes.
Make sure your code passes TypeScript and ESLint. Run the following to verify:
yarn typescript
yarn lint
To fix formatting errors, run the following:
yarn lint --fix
Docs
Documentation can be found on the React Navigation website.