TypeError: 无法读取未定义的 PersistGate.componentDidMount 的属性'subscribe'



我将Redux-persistent添加到本地存储应用程序中。我相信我正确地遵循了实现,我不断地得到错误:

无法读取未定义类型的属性"subscribe"错误:PersistGate.componentDidMountnode_modules/redux-persistent/es/integration/react.js:76

这是我的代码。

store.js

import { createStore, applyMiddleware } from 'redux';
import { persistStore } from 'redux-persist';
import logger from 'redux-logger';
import rootReducer from './root.reducer';
const middlewares = [logger];
export const store = createStore(rootReducer, applyMiddleware(...middlewares));
export const persistor = persistStore(store);
export default { store, persistor };

root.reducer.js

import { combineReducers } from 'redux';
import { persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import userReducer from './user/user.reducer';
import cartReducer from './cart/cart.reducer';

const persistConfig = {
key: 'root',
storage,
whitelist: ['cart']
}
const rootReducer = combineReducers({
user: userReducer,
cart: cartReducer
});

export default persistReducer(persistConfig, rootReducer);

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import {BrowserRouter} from 'react-router-dom';
import App from './App';
import { Provider } from 'react-redux';
import { PersistGate } from 'redux-persist/integration/react';
import Store from './redux/store';
ReactDOM.render(
<Provider store={Store.store}>
<BrowserRouter> 
<PersistGate persistor={Store.persistor} />
<App />
<PersistGate/>
</BrowserRouter>
</Provider>,
document.getElementById('root')
);

你搞砸了一些东西,这就是:

import {store,persistor} from "./redux/store";
<Provider store = {store} >
<Router >
<PersistGate loading = {null}  persistor = {persistor}>
<App />
</PersistGate>
</Router>
</Provider>

我希望这个解决方案能帮助一些

语法在index.js PersisGate包装器中关闭。

正确的语法是

<PersistGate persistor={Store.persistor}>
<App />
</PersistGate>

相关内容

最新更新