我将如何在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()
,则会得到一个新商店(即具有初始状态的新商店,而不是包含本地数据的实际持久存储)。
答案 0 :(得分:0)
由于导出的全部内容都是创建新商店的功能,因此您无法创建。
没有上下文(例如,您可能这样做是有原因的,尽管我无法理解它的含义)只是在默认导出功能之外创建商店。
您仍然可以将函数默认导出,并将store
导出为命名导出。