redux-persist: undefined не является объектом (оценка store.getState) - PullRequest
0 голосов
/ 03 марта 2019

Я впервые использую Redux и Redux Persist.Я получил эту ошибку, когда пытался запустить свое приложение (в строке 20 index.js):

TypeError: undefined не является объектом (оценивает store.getState ')

index.js:

import React from 'react';
import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';
import { Provider } from 'react-redux';
import {persistor, store}from './store/configureStore';
import { PersistGate } from 'redux-persist/integration/react';

const RNRedux = () => (
    <Provider store={store}>
        <PersistGate loading={null} persistor={persistor}>
            <App/>
        </PersistGate>
    </Provider>
)

AppRegistry.registerComponent(appName, () => RNRedux);

App.js:

import {createStackNavigator, createAppContainer} from 'react-navigation';
import Register from './components/Register';
import Home from './components/Home';
import Login from './components/Login';

const AppNavigator = createStackNavigator({
  HomeScreen: {
    screen: Home,
    navigationOptions: {
      title: 'Home',
      header: null
    }
  },
  LoginScreen: {screen: Login},
  RegisterScreen: {
    screen: Register,
    navigationOptions: {
      title: 'Register'
    }
  }
});

const App = createAppContainer(AppNavigator);

export default App;

configureStore.js:

import { createStore, combineReducers } from 'redux';
import userReducer from './reducers/user';
import { persistStore, persistCombineReducers, persistReducer } from 'redux-persist';
import storage from 'redux-persist/es/storage' // default: localStorage if web, AsyncStorage if react-native
import { AsyncStorage } from 'react-native';

const persistConfig = {
    key: 'root',
    storage
};

const rootReducer = persistCombineReducers(persistConfig, {
    user: userReducer
});

const persistedReducer = persistReducer(persistConfig, rootReducer);

export default () => {
    let store = createStore(persistedReducer)
    let persistor = persistStore(store, {storage: AsyncStorage})
    return { store, persistor };
}

1 Ответ

0 голосов
/ 03 марта 2019

Вы экспортируете функцию из configureStore.js, но пытаетесь импортировать {persistor, store} в index.js.

Вместо этого следует импортировать функцию и вызывать ее.

Например:

import configureStore from './store/configureStore';
const {store, persistor} = configureStore();
...