【发布时间】:2018-07-02 18:45:01
【问题描述】:
我正在使用 react redux 实现两种不同类型的用户登录。 这是我的登录方式:
export const login = (credentials) => (dispatch) =>
api.user.login(credentials).then(user => {
localStorage.userJWT = user.token;
localStorage.userEmail = user.email;
localStorage.userId = user.id;
localStorage.surname = user.surname;
localStorage.type = user.type;
dispatch(userLoggedIn(user));
});
- 对于第一类用户,我从后端返回:token、email、id、surname。
- 对于第二种用户,我从后端返回:token、email、id、type。
我做了一些第二类用户无法访问的安全路由。
所以如果返回变量surname,我为那个用户定义了具体的路由。
如果返回 type 变量,它会正确显示链接和 redux 存储中的所有内容。但是,如果我重新加载页面,它会自动将变量 type 更改为 undefined surname。
这是我试图将 redux 状态保存在 store 中的地方,即使我重新加载页面也是如此。 常量存储 = 创建存储( 根减速器, composeWithDevTools(applyMiddleware(thunk)) );
if(localStorage.userJWT && localStorage.userEmail && localStorage.userId && localStorage.type){
const user = { token: localStorage.userJWT, email: localStorage.userEmail, id: localStorage.userId, type: localStorage.type};
store.dispatch(userLoggedIn(user));
}
if(localStorage.userJWT && localStorage.userEmail && localStorage.userId && localStorage.surname){
const user = { token: localStorage.userJWT, email: localStorage.userEmail, id: localStorage.userId, surname: localStorage.surname};
store.dispatch(userLoggedIn(user));
}
您能否建议为什么它不遵循我的 if 语句。 提前谢谢你。
【问题讨论】: