ionic3 - 离子本地存储不会第一次加载
问题描述
当我想对用户进行身份验证以检查该用户是否已经登录时,我遇到了问题。无论用户是否登录,侧边菜单都会有所不同。我正在使用 localstorage 从 API 中保存用户的令牌。这是我在 login.ts 中保存令牌的方式。
localStorage.setItem("token",this.data.token);
之后我想使用本地存储来检查用户是否已经登录或没有使用这个条件
if(localStorage.getItem("token") !== null && localStorage.getItem("token") !== ""){
console.log("already login, token :"localStorage.getItem("token"));
this.isLoggedIn=true;
}
else{
console.log("not login")
this.isLoggedIn=false;
}
这种情况不会在第一页重新加载时运行,但如果我重新加载浏览器它就可以工作。我已经把这个条件放在 ngOnInit()、ionViewWillEnter()、constructor() 里面,没有什么能解决这个问题
解决方案
我认为您将需要使用基于承诺的语法来从本地存储中保存/检索值。
this.localStorage.get('token').then((value) => {
// Do your side menu stuff
this.isLoggedIn=true;
});
还结帐:https ://github.com/ionic-team/ionic-conference-app用于类似的用例,其中启用/禁用侧边菜单基于,如果用户登录或未登录
希望这可以帮助..
推荐阅读
- r - R将数据框转换为矩阵,将某些列保持为数字
- google-sheets - 如果单元格值(日期名称)等于今天,则条件格式
- java - log4j:WARN No appenders could be found for logger / 请在 Eclipse 中通过 Selenium 执行测试时正确初始化 log4j 系统
- java - Java在使用绝对路径时说“文件不存在”
- node.js - AWS Lambda timeout
- java - Android Studio 为构建设置节点目录(原因:错误=2,没有这样的文件或目录)
- r - 如何在 R 中编写一个带有 2 个参数并返回百分比的函数?
- c# - ASP.NET MVC how to always visit the Index Page/Action and how to set the default route.
- string - Convert a UTF-16 buffer into CString if only byte size is Known?
- wordpress - 在 Woocommerce 中按产品添加累进运费