Javascript 无法从redux存储中存储和检索状态
这是我的reducer在操作登录成功后触发的,下面是我的商店代码Javascript 无法从redux存储中存储和检索状态,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,这是我的reducer在操作登录成功后触发的,下面是我的商店代码 import * as actions from '../actions/login.Action'; let initialState = { user: { loggedIn: false, userRole: "", userEmail: "", } }; export default function (state = initialState, acti
import * as actions from '../actions/login.Action';
let initialState = {
user: {
loggedIn: false,
userRole: "",
userEmail: "",
}
};
export default function (state = initialState, action) {
switch (action.type) {
case actions.LOGIN_SUCCESS:
return {
...state,
user: {
...state.user,
loggedIn: true,
userRole: action.userRole,
}
};
case actions.LOGOUT:
return initialState;
default:
return state;
}
}
在这种情况下,我可以从reducer中获取值,但问题是页面刷新时状态值变为空这段代码中有什么问题我无法确定存储不保存状态的原因不明我想您首先调用persistedState,然后定义它如下所示:
import { createStore, applyMiddleware, compose } from 'redux';
//import createSagaMiddleware from 'redux-saga';
import { routerMiddleware } from 'react-router-redux';
import thunk from 'redux-thunk';
import createHistory from 'history/createBrowserHistory';
import rootReducer from './reducers';
const enhancers = [];
const middleware = [
thunk,
routerMiddleware(history)
];
export const history = createHistory();
const composedEnhancers = compose(
applyMiddleware(...middleware),
...enhancers
);
export const store = createStore(
rootReducer,
persistedState,
composedEnhancers
);
const persistedState = localStorage.getItem('state') ? JSON.parse(localStorage.getItem('state')) : {};
store.subscribe(() => {
localStorage.setItem('reduxState', JSON.stringify(store.getState()));
});
如何更改persistedState的位置,以便在此之后:
export const store = createStore(
rootReducer,
persistedState,
composedEnhancers
);
const persistedState = localStorage.getItem('state') ?
JSON.parse(localStorage.getItem('state')) : {};
当然,我想下一步做的就是你的答案,谢谢
const persistedState = localStorage.getItem('state') ?
JSON.parse(localStorage.getItem('state')) : {};
export const store = createStore(
rootReducer,
persistedState,
composedEnhancers
);