Redux persistReducer в React Native вызывает крайне медленное время реакции - PullRequest
0 голосов
/ 08 марта 2020

При использовании redux-persist v6 в React Native, события клика и анимации становятся очень медленными go. Нажатие кнопки занимает около 5 или 6 секунд, прежде чем она выполняет действие. В configureStore.ts, если я изменю createStore () на rootReducer вместо persistedReducer (а также закомментирую PersistGate в index.tsx), скорость отклика приложения снова возрастает. (К вашему сведению, остальная часть приложения использует react-navigation с react-natigation-stack.)

У кого-нибудь есть какие-либо рекомендации, чтобы приложение быстро реагировало даже при использовании reduxPersist?

index.tsx

import React from 'react';
import { Provider } from 'react-redux';
import { store, persistor } from './store/configureStore';
import { AppRegistry, View } from 'react-native';
import { MainNavigator } from './navigation/navigation';
import { PersistGate } from 'redux-persist/integration/react'
import { appId } from './config';

const App = () => {
  return (
    <Provider store={store} >
      <PersistGate
        loading={<View style={{ backgroundColor: '#ffc900' }} />}
        persistor={persistor}>
        <MainNavigator />
      </PersistGate>
    </Provider>
  )
}

AppRegistry.registerComponent(appId, () => App);

configureStore.ts

import AsyncStorage from '@react-native-community/async-storage';
import { createStore, compose, applyMiddleware } from 'redux';
import { persistStore, persistReducer } from 'redux-persist';
import { rootReducer } from '../reducer/rootReducer';
import thunk from 'redux-thunk';

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

const persistedReducer = persistReducer(persistConfig, rootReducer)

let store = createStore(
  persistedReducer, // rootReducer,
  {},
  compose(applyMiddleware(thunk))
)

let persistor = persistStore(store)

export { store, persistor }

...