在我的sign n form应用程序中,我已经为本地存储设置了一些值。我将值设置为本地存储后重定向。但问题是重定向页面在第一次重定向时没有获得该值。但是,如果我使用浏览器刷新按钮刷新页面,则会获取值。
这是我重定向的方式
if (res["returnFlag"] === 0) {
// tslint:disable-next-line:no-string-literal
const userid = res["loginEmployeeId"];
const username = res["username"];
localStorage.setItem("userid", userid);
localStorage.setItem("isLoggedIn", "true");
localStorage.setItem("username", username);
console.log(username);
// console.log('signed in log val:' + localStorage.getItem('isLoggedIn'));
// location.href = "dashboard";
// this.router.navigateByUrl("dashboard");
// this.router.navigated;
this.router.navigate(["dashboard"]);
}
constructor(public route: ActivatedRoute)
和
this.route.paramMap.subscribe(res => {
// here you need to call the method which you are setting up
});
您应该能够使用与设置值完全相同的密钥从localStorage检索数据。另外,请确保res包含值。在将值设置为localStorage之前检查null和undefined。
const userid = res["loginEmployeeId"];
const username = res["username"];
localStorage.setItem("userid", userid ?? '');
localStorage.setItem("isLoggedIn", "true");
localStorage.setItem("username", username ?? '');