Skip to content

Instantly share code, notes, and snippets.

@dekameron22
Created March 18, 2019 16:47
Show Gist options
  • Save dekameron22/a5d622f74153f5a2096ffe7682b5df7d to your computer and use it in GitHub Desktop.
Save dekameron22/a5d622f74153f5a2096ffe7682b5df7d to your computer and use it in GitHub Desktop.
import React from 'react';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware, combineReducers, compose } from 'redux';
import {
createReduxContainer,
createReactNavigationReduxMiddleware,
createNavigationReducer
} from 'react-navigation-redux-helpers';
import { createLogger } from 'redux-logger';
import applyAppStateListener from 'redux-enhancer-react-native-appstate';
import thunkMiddleware from 'redux-thunk';
import ReduxNavigation from './src/navigation/ReduxNavigation';
import AppNavigator from './src/navigation/stacks';
import reducers from './src/redux/reducers';
const navReducer = createNavigationReducer(AppNavigator);
const appReducer = combineReducers(
Object.assign(
{
nav: navReducer
},
reducers
)
);
// Note: createReactNavigationReduxMiddleware must be run before reduxifyNavigator
const middleware = createReactNavigationReduxMiddleware(state => state.nav);
const loggerMiddleware = createLogger({
predicate: (getState, action) => __DEV__
});
export const App = createReduxContainer(AppNavigator);
function configureStore(initialState) {
const enhancer = compose(
applyAppStateListener(),
applyMiddleware(middleware, thunkMiddleware, loggerMiddleware)
);
return createStore(appReducer, initialState, enhancer);
}
const store = configureStore({});
export default class Root extends React.Component {
render() {
return (
<Provider store={store}>
<ReduxNavigation />
</Provider>
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment