[RN][Redux-Persist] AutoRehydrate 不是函数
[RN][Redux-Persist] AutoRehydrate is not a function
我正在使用 redux-persist 5.5.0
当我调试我的反应本机应用程序时,
错误说 "autoRehydrate is not a function"
我的源代码在这里,请给我帮助
"use strict";
import thunk from "redux-thunk";
import analytics from "./analytics";
import array from "./array";
import promise from "./promise";
import reducers from "../reducers";
import { createLogger } from "redux-logger";
import { applyMiddleware, createStore, compose } from "redux";
import { persistStore, autoRehydrate } from "redux-persist";
import { ensureCompatibility } from "./compatibility";
import { AsyncStorage } from "react-native";
const isDebuggingInChrome = false;
const logger = createLogger({
predicate: (getState, action) => isDebuggingInChrome,
collapsed: true,
duration: true
});
const middleware = applyMiddleware(thunk, promise, array, analytics, logger);
async function configureStore(onComplete: ?() => void) {
const didReset = await ensureCompatibility();
const store = createStore(reducers, { /* TODO: Initial state */ }, compose(middleware, autoRehydrate()));
persistStore(store, { storage: AsyncStorage }, _ => onComplete(didReset));
if (isDebuggingInChrome) {
window.store = store;
}
return store;
}
redux-persist 5.x 已更改 API 并且不再使用 autoRehydrate。下面是我现在使用redux-persist的方式。
import React, {Component} from 'react';
import {Provider} from 'react-redux';
import {createStore, applyMiddleware, compose} from 'redux';
import {PersistGate} from 'redux-persist/lib/integration/react';
import {persistStore, persistReducer} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import Thunk from 'redux-thunk';
import Router from './Router';
import reducers from './reducers';
const persistConfig = {
key: 'root',
storage: storage,
};
const persistedReducer = persistReducer(persistConfig, reducers);
const store = compose(persistedReducer, {}, composeEnhancers(applyMiddleware(Thunk)));
class App extends Component {
render() {
const persistor = persistStore(store);
return (
<Provider store={store}>
<PersistGate persistor={persistor}>
<Router />
</PersistGate>
</Provider>
);
}
}
export default App;
如果使用上述方法,出现错误:Object(...) is not a function 然后尝试使用:
const store = createStore(
坚持减速机,
applyMiddleware(thunk,记录器)
);
我正在使用 redux-persist 5.5.0 当我调试我的反应本机应用程序时, 错误说 "autoRehydrate is not a function" 我的源代码在这里,请给我帮助
"use strict";
import thunk from "redux-thunk";
import analytics from "./analytics";
import array from "./array";
import promise from "./promise";
import reducers from "../reducers";
import { createLogger } from "redux-logger";
import { applyMiddleware, createStore, compose } from "redux";
import { persistStore, autoRehydrate } from "redux-persist";
import { ensureCompatibility } from "./compatibility";
import { AsyncStorage } from "react-native";
const isDebuggingInChrome = false;
const logger = createLogger({
predicate: (getState, action) => isDebuggingInChrome,
collapsed: true,
duration: true
});
const middleware = applyMiddleware(thunk, promise, array, analytics, logger);
async function configureStore(onComplete: ?() => void) {
const didReset = await ensureCompatibility();
const store = createStore(reducers, { /* TODO: Initial state */ }, compose(middleware, autoRehydrate()));
persistStore(store, { storage: AsyncStorage }, _ => onComplete(didReset));
if (isDebuggingInChrome) {
window.store = store;
}
return store;
}
redux-persist 5.x 已更改 API 并且不再使用 autoRehydrate。下面是我现在使用redux-persist的方式。
import React, {Component} from 'react';
import {Provider} from 'react-redux';
import {createStore, applyMiddleware, compose} from 'redux';
import {PersistGate} from 'redux-persist/lib/integration/react';
import {persistStore, persistReducer} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
import Thunk from 'redux-thunk';
import Router from './Router';
import reducers from './reducers';
const persistConfig = {
key: 'root',
storage: storage,
};
const persistedReducer = persistReducer(persistConfig, reducers);
const store = compose(persistedReducer, {}, composeEnhancers(applyMiddleware(Thunk)));
class App extends Component {
render() {
const persistor = persistStore(store);
return (
<Provider store={store}>
<PersistGate persistor={persistor}>
<Router />
</PersistGate>
</Provider>
);
}
}
export default App;
如果使用上述方法,出现错误:Object(...) is not a function 然后尝试使用: const store = createStore( 坚持减速机, applyMiddleware(thunk,记录器) );