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 ( ); } }