store.dispatch is not a function - react native redux-persist with redux-thunk middlware
我是redux-persist的新手,我正在尝试将状态保持在本地存储中。出现上述错误。
我在Stack Overflow中查找了一个解决方案,但在这里找不到与该解决方案类似的问题。任何帮助将不胜感激。
这是我的商店代码:
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 31 | import { createStore, applyMiddleware, compose } from"redux"; import thunk from"redux-thunk"; import { createLogger } from"redux-logger"; import { createReactNavigationReduxMiddleware } from"react-navigation-redux-helpers"; import appReducer from"../reducers"; const persistConfig = { key: 'tcroot', storage: LocalStorage, } const persistedReducer = persistReducer(persistConfig, appReducer) // instantiate logger middleware const logger = createLogger(); const middleware = createReactNavigationReduxMiddleware(state => state.nav); const composeEnhancers = (typeof window !=="undefined" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) || compose; const configureStore = () => createStore( persistedReducer, composeEnhancers(applyMiddleware(thunk, logger, middleware)) ); export default configureStore; |
和我的app.js代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import React, { Component } from"react"; import { Provider } from"react-redux"; import { PersistGate } from 'redux-persist/integration/react' import configureStore from"./redux/store"; // import store from"./redux/store/dev"; import persistor from './redux/store/persistedStore'; import AppContainer from"./screens/AppContainer"; // const { store, persistor } = configureStore(); const store = configureStore(); export default class App extends Component { render() { return ( <Provider store={store}> <PersistGate loading={null} persistor={persistor}> <AppContainer /> </PersistGate> </Provider> ); } } |
问题是您的
需要这样
1 2 3 4 5 6 7 8 9 10 11 | import { persistStore, persistReducer } from 'redux-persist' //.... const configureStore = () => { let store = createStore( persistedReducer, composeEnhancers(applyMiddleware(thunk, logger, middleware)) ); let persistor = persistStore(store) return { store, persistor } } |