Javascript redux persist不';不起作用,补液只发生一次
我目前正在使用react 15.4.2和redux,每当浏览器刷新时,我将保持我的react/redux状态。我发现人们建议继续使用redux,但当我按照基本用法的说明进行操作时,它根本不起作用,当我刷新浏览器时,所有状态再次变为空。这是记录器显示的内容 重新水化只显示一次(第一次),并且在执行另一个操作时不会再次出现。这是我的store.jsJavascript redux persist不';不起作用,补液只发生一次,javascript,reactjs,redux,frontend,Javascript,Reactjs,Redux,Frontend,我目前正在使用react 15.4.2和redux,每当浏览器刷新时,我将保持我的react/redux状态。我发现人们建议继续使用redux,但当我按照基本用法的说明进行操作时,它根本不起作用,当我刷新浏览器时,所有状态再次变为空。这是记录器显示的内容 重新水化只显示一次(第一次),并且在执行另一个操作时不会再次出现。这是我的store.js import {createStore, applyMiddleware} from "redux"; import thunk from "redu
import {createStore, applyMiddleware} from "redux";
import thunk from "redux-thunk";
import logger from "redux-logger";
import promise from "redux-promise-middleware";
import {composeWithDevTools} from "redux-devtools-extension";
import {autoRehydrate, persistStore} from 'redux-persist';
import combineReducer from "./reducers/combineReducer";
const middleware = composeWithDevTools(applyMiddleware(promise(), thunk, logger()), autoRehydrate());
const store = createStore(combineReducer, middleware);
persistStore(store);
export default store;
这是我的index.js:
import React from "react";
import ReacrDOM from "react-dom";
import {Router, Route, IndexRoute, hashHistory, browserHistory} from "react-router"
import {Provider} from "react-redux";
import {login_check} from "./actions/logActions";
import store from "./store";
import Layout from "./pages/Layout";
import Dashboard from "./pages/Dashboard";
import Login from "./pages/login/index";
import User from "./pages/user/index";
import Pemain from "./pages/pemain/index";
const app = document.getElementById("app");
function requireLogin() {
const {user_id, session_key}=store.getState().logReducer;
store.dispatch(login_check({user_id: user_id, session_key: session_key}))
const {logged_in}=store.getState().logReducer;
if (!logged_in) {
/*browserHistory.push('#/login');*/
hashHistory.push('/login');
}
}
ReacrDOM.render(
<Provider store={store}>
<Router history={hashHistory}>
<Route path="/login" component={Login}/>
<Route path="/" component={Layout} onEnter={requireLogin}>
<IndexRoute component={Dashboard} onEnter={requireLogin}/>
<Route path="user" component={User} onEnter={requireLogin}/>
<Route path="pemain" component={Pemain} onEnter={requireLogin}/>
</Route>
</Router>
</Provider>
, app);
我用谷歌搜索了两天,但仍然没有找到任何解决方案,如何让它工作?请帮助我
问候,
vidy hermes我认为您需要将自动脱水传递到createStore,而不是使用开发工具进行合成
import { autoRehydrate } from 'redux-persist';
import { createStore } from 'redux';
import thunk from 'redux-thunk';
import logger from 'redux-logger'
const middleware = composeWithDevTools(applyMiddleware(promise(), thunk, logger()));
const store = createStore(combineReducer, middleware, autoRehydrate());
我只是react/redux方面的新手。虽然我没有导入promise和thunk,但我只是使用了正常语法,我猜您使用的是“()”after logger,它使其成为函数调用,并且不会在存储中保存状态和自动流出物
using composeWithDevTools:
const middleware = composeWithDevTools(applyMiddleware(logger));
let store = createStore(rootReducer , middleware , autoRehydrate());
persistStore(store ) ;
using simple boilerplate :
let store = createStore(rootReducer , applyMiddleware(logger) , autoRehydrate());
persistStore(store ) ;
我希望它能有所帮助。还没有找到任何解决方案,但我尝试寻找另一个解决主要问题的解决方案,即redux状态持久性,因此我目前使用redux localstorage,它很容易设置,而且工作正常。仍然不起作用,每次刷新页面时都会重置状态。。但是谢谢你
using composeWithDevTools:
const middleware = composeWithDevTools(applyMiddleware(logger));
let store = createStore(rootReducer , middleware , autoRehydrate());
persistStore(store ) ;
using simple boilerplate :
let store = createStore(rootReducer , applyMiddleware(logger) , autoRehydrate());
persistStore(store ) ;