Accessing Redux Store outside of React Component returns initial Values
在基于
问题:我不确定如何访问/导出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | export default class Setup extends Component { this.state = { isLoading: false, store: configureStore(() => this.setState({ isLoading: false })), isReady: false }; ... render() { if (!this.state.isReady || this.state.isLoading) { return <Expo.AppLoading />; } return ( <Provider store={this.state.store}> <App /> </Provider> ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import { AsyncStorage } from"react-native"; import devTools from"remote-redux-devtools"; import { createStore, applyMiddleware, compose } from"redux"; import thunk from"redux-thunk"; import { persistStore, persistReducer } from"redux-persist"; import reducer from"../reducers"; import devToolsEnhancer from 'remote-redux-devtools'; import storage from 'redux-persist/lib/storage' // defaults to localStorage for web and AsyncStorage for react-native const persistConfig = { key: 'root', storage, } const persistedReducer = persistReducer(persistConfig, reducer); export default function configureStore(onCompletion: () => void): any { const enhancer = compose( applyMiddleware(thunk), devTools({ name:"MyApp", realtime: true }) ); let store = createStore(persistedReducer, enhancer); let persistor = persistStore(store, null, onCompletion); return store; } |
尝试失败
仅返回其
导入原始存储。
我的/src/lib/utils.js
1 2 3 4 | import configureStore from"../boot/configureStore"; const state = configureStore console.log(state); // returns only the initial value for the store |
使用
您可以从
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | let store = null; export function getStore() { return store; } export default class Setup extends Component { constructor(props) { super(props); store = configureStore(() => this.setState({ isLoading: false })), this.state = { isLoading: false, store, isReady: false }; } |
然后从其他位置调用