React Native с Redux-Persist, PersistGate, начальная загрузка - PullRequest
0 голосов
/ 04 мая 2018

Я работаю над приложением на реактивном языке и должен работать с Redux-Persist У меня настроена конфигурация магазина, ошибок не возникает, но регидратация никогда не происходит, а persistentGate бесконечно находится в состоянии загрузки.

Вот мой store.js

import { createStore, combineReducers } from 'redux';
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import  entriesReducer from './reducers/entries';

import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';

const rootReducer = combineReducers({
    entries : entriesReducer
});

const persistConfig = {
    key: 'root',
    storage: storage,
    stateReconciler: autoMergeLevel2 // see "Merge Process" section for details.
   };

   const pr = persistReducer(persistConfig, rootReducer);


const configureStore = () => {
    const store = createStore(rootReducer);
    const persistor = persistStore(store);
    return { persistor, store };
  };

  export default configureStore;

И мой index.js

import React from 'react';
import { AppRegistry } from 'react-native';
import {Provider} from 'react-redux';
import App from './App';
import configureStore from './src/store/configureStore';
import { PersistGate } from 'redux-persist/lib/integration/react';

const store = configureStore();

const RNRedux = () => (
    <Provider store={store.store}>

    <PersistGate loading={<App />} persistor={store.persistor}>

        <App/>

    </PersistGate>
    </Provider>
);
AppRegistry.registerComponent('PTM', () => RNRedux);

Буду очень признателен за любую помощь, я пытался настроить это в течение нескольких дней безуспешно. Раньше мне приходилось сталкиваться с ошибками, но теперь я не вижу их, и они по-прежнему отказываются работать, я просто не знаю, где искать ошибку.

Edit: Файл App.js

import React from 'react';
import { View, Text, Button, StatusBar } from 'react-native';
import { StackNavigator } from 'react-navigation'; 
import {connect} from 'react-redux';

import NavBar from './src/components/NavBar/NavBar';
import DayPicker from './src/components/DayPicker/DayPicker';
import TotalTime from './src/components/TotalTime/TotalTime';

import HomeScreen from './screens/HomeScreen';
import DetailsScreen from './screens/DetailsScreen';
import EntriesList from './src/components/EntriesList/EntriesList';


var x = null;

const RootStack = StackNavigator(
  {
    Home: {
      screen: HomeScreen,
    },
    Details: {
      screen: DetailsScreen,
    },
  },
  {
    initialRouteName: 'Home',
  }
);

export default class App extends React.Component {
  render() {
    return <RootStack />;
  }
}

И мой HomeScreen использует это:

const mapStateToProps = state => {
      return {
        data : state.entries.data,
        entriesPerDay : state.entries.entriesPerDay, 
        pickedDate : state.entries.pickedDate,
        total: state.entries.total
      };
  };

  const mapDispatchToProps = dispatch => {
      return {
          onPickDate: (day) => dispatch(pickDay(day)),
          onDataSet: (data) => dispatch(setData(data))
      };
  };

  export default connect(mapStateToProps, mapDispatchToProps)(HomeScreen);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...