离子本地存储不会首次加载

时间:2018-06-22 09:47:14

标签: 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()中,没有任何帮助

1 个答案:

答案 0 :(得分:0)

我认为您需要使用基于promise的语法从本地存储中保存/检索值。

    this.localStorage.get('token').then((value) => {
    // Do your side menu stuff
    this.isLoggedIn=true;
    });

也可以检出:https://github.com/ionic-team/ionic-conference-app用于类似的用例,其中基于启用/禁用侧面菜单,无论用户是否登录

希望这会有所帮助。