Skip to content

Instantly share code, notes, and snippets.

@joshbuchea
Forked from stan229/index.js
Created July 21, 2017 04:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshbuchea/39348d2874defdfe0fe3cf42f917ff61 to your computer and use it in GitHub Desktop.
Save joshbuchea/39348d2874defdfe0fe3cf42f917ff61 to your computer and use it in GitHub Desktop.
React Navigation and Redux example
import React, { Component } from "react";
import { Text } from "react-native";
import { Provider, connect } from "react-redux";
import { StackNavigator, addNavigationHelpers } from "react-navigation";
import Routes from "./config/routes";
import getStore from "./store";
const AppNavigator = StackNavigator(Routes);
const navReducer = (state, action) => {
const newState = AppNavigator.router.getStateForAction(action, state);
return newState || state;
};
@connect(state => ({
nav: state.nav
}))
class AppWithNavigationState extends Component {
render() {
return (
<AppNavigator
navigation={addNavigationHelpers({
dispatch: this.props.dispatch,
state: this.props.nav
})}
/>
);
}
}
const store = getStore(navReducer);
export default function NCAP() {
return (
<Provider store={store}>
<AppWithNavigationState />
</Provider>
);
}
import { combineReducers } from "redux";
import otherReducer from "./otherReducer";
export default function getRootReducer(navReducer) {
return combineReducers({
nav: navReducer,
otherReducer: otherReducer
});
}
import { createStore, applyMiddleware } from "redux";
import thunk from "redux-thunk";
import getRootReducer from "./reducers";
export default function getStore(navReducer) {
const store = createStore(
getRootReducer(navReducer),
undefined,
applyMiddleware(thunk)
);
return store;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment