1.1.1 • Published 7 years ago
@meth/react-navigation-redux-helpers v1.1.1
react-navigation-redux-helpers
This branch is used to publish to the @meth/react-navigation-redux-helpers module
This repo contains Redux middleware and utils for React Navigation.
Installation
yarn add react-navigation-redux-helpersor
npm install --save react-navigation-redux-helpersUse
Consult the React Navigation docs for how to use this library.
API
createReactNavigationReduxMiddleware (required)
function createReactNavigationReduxMiddleware<State: {}>(
key: string,
navStateSelector: (state: State) => NavigationState,
): Middleware<State, *, *>;- Returns a middleware that can be applied to a Redux store.
- Param
keyneeds to be unique for the Redux store. Most people only have one store, so can use any string (eg."root"), as long as it's consistent across all calls. - Param
navStateSelectorselects the navigation state from your store.
initializeListeners (required)
function initializeListeners(key: string, state: NavigationState): void;- Called it in your main component's
componentDidMount. Your "main component" is the one that wraps your root navigator. - Param
keyneeds to be consistent with other calls for the same store. See above. - Param
stateis the navigation state for your app.
createNavigationPropConstructor (required, react-navigation@2.0.3 or later only)
function createNavigationPropConstructor(
key: string,
): (
dispatch: NavigationDispatch,
state: NavigationState,
) => NavigationScreenProp<NavigationState>;- Call
createNavigationPropConstructorin the global scope to create a prop constructor. - Param
keyneeds to be consistent with other calls for the same store. See above. - Prop constructor is called in your main component's
render. - Param
dispatchis your Redux store's dispatch function. - Param
stateis the navigation state for your app.
createReduxBoundAddListener (alternative to createNavigationPropConstructor)
function createReduxBoundAddListener(
key: string,
): (
eventName: string,
handler: NavigationEventCallback
) => NavigationEventSubscription;- Alternative to
createNavigationPropConstructor. - Call
createReduxBoundAddListenerin the global scope to construct anaddListenerfunction. - Param
keyneeds to be consistent with other calls for the same store. See above. addListeneris a necessary property in thenavigationobject that you need to pass as a prop into your root navigator.
createDidUpdateCallback (optional)
function createDidUpdateCallback(key: string): () => void;- Without this function, the first events (ie.
didFocus) for a screen that hasn't been rendered yet won't triggeraddListener. - This happens because our middleware gets triggered before that screen's
componentDidMountcan calladdListener. - Param
keyneeds to be consistent with other calls for the same store. See above. - This function should get called in global scope, and will return a callback that should be called in your main component's
componentDidUpdate.
createNavigationReducer (optional)
function createNavigationReducer(navigator: Navigator): Reducer<*, *>;- Call
createNavigationReducerin the global scope to construct a navigation reducer. - This basically just wraps
navigator.router.getStateForAction, which you can call directly if you'd prefer. - Param
navigatoris your root navigator (React component). - Call this reducer from your master reducer (or combine using
combineReducers).
1.1.1
7 years ago