无法读取未定义的属性“订阅”-Redux Persist

Chr*_*ard 2 reactjs react-native react-redux redux-persist

我得到的更具体的错误是:警告:道具类型失败:道具store在中标记为必需Provider,但其值为undefined

store.js

const initialState = {};

const storage = createSensitiveStorage({
  keychainService: "myKeychain",
  sharedPreferencesName: "mySharedPrefs"
});

const config = {
  key: "root",
  storage,
};

const middleware = [thunk];

const reducer = persistCombineReducers(config, rootReducer);

export default () => {
  let store = createStore(
    reducer,
    initialState,
    compose(applyMiddleware(...middleware))
  );
  let persistor = persistStore(store);

  return { store, persistor }
}
Run Code Online (Sandbox Code Playgroud)

用于减速器的index.js:

export default combineReducers({
    profile: profileReducer,
    auth: authReducer,
    photoSlider,
    trip: tripReducer,
    moment: momentReducer
})
Run Code Online (Sandbox Code Playgroud)

App.js:

import {store, persistor} from './src/store';

<Provider store={store}>
        <PersistGate loading={null} persistor={persistor}>
          <Layout />
        </PersistGate>
      </Provider>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Syl*_*ain 6

store.js,你不出口storepersistor你导出函数,返回一个对象storepersistor。因此,您的import语句App.js实际上导入了两个不存在的命名导入

您可以这样获取实例:

import factory from './src/store';

const {store, persistor} = factory();

<Provider store={store}>
  <PersistGate loading={null} persistor={persistor}>
     <Layout />
  </PersistGate>
</Provider>
Run Code Online (Sandbox Code Playgroud)