从外部组件访问Redux存储

时间:2019-10-08 16:20:30

标签: redux

我将如何在helpers.js文件(基本上是一个充满功能的文件,该功能有助于导出/处理依赖于商店的某些数据)中访问我的redux存储?

问题是我不能只做import store from './mystore',因为我将其导出到configureStore.js中的方式是

export default () => {
  let store = createStore(persistedReducer, {}, applyMiddleware(ReduxThunk));
  let persistor = persistStore(store);
  return { store, persistor };
}

然后,将其导入App.js中,放入PersistGate中,等待商店补水:

import React, { Component } from 'react';
import Router               from './Router';
import { Provider }         from 'react-redux';
import configureStore       from './configureStore';
import { PersistGate }      from 'redux-persist/integration/react';

export default class App extends Component {
  render() {
    return (
      <Provider store={configureStore().store}>
        <PersistGate loading={null} persistor={configureStore().persistor}>
          <Router />
        </PersistGate>
      </Provider>
    );
  }
}

这就是为什么应用程序可以通过道具访问商店的原因,但是我不知道如何在没有React.Component的情况下访问这种水合状态。

如果我导入它并调用store.getState(),则会得到一个新商店(即具有初始状态的新商店,而不是包含本地数据的实际持久存储)。

1 个答案:

答案 0 :(得分:0)

由于导出的全部内容都是创建新商店的功能,因此您无法创建。

没有上下文(例如,您可能这样做是有原因的,尽管我无法理解它的含义)只是在默认导出功能之外创建商店。

您仍然可以将函数默认导出,并将store导出为命名导出。