angular - Angular 应用程序组件在重定向后未加载本地存储值
问题描述
在我的符号 n 形式的应用程序中,我为本地存储设置了一些值。我在将值设置为本地存储后重定向。但问题是重定向页面在第一次重定向中没有获得该值。但是,如果我使用浏览器刷新按钮刷新页面,它会采用这些值。
这就是我重定向的方式
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"]);
}
解决方案
您应该能够使用与设置值完全相同的键从 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 ?? '');
推荐阅读
- assembly - 执行此 ARM 汇编代码程序后如何找到 N、C、Z、V 标志?
- react-native - React Native App with Expo - QR码未加载
- regex - 不要包含某些源文件
- linux - 从 nautilus 更改 Linux 中的程序工作目录
- php - 当我调度和运行 artisan queue:work 时,为什么 laravel 事件也存储在作业表中?
- java - 大海捞针(将两个对象与 .equals 进行比较时出错)
- java - 解析特定格式的 JSON 文件
- javascript - 我在我的 npm 包中的哪里导出函数以便开发人员可以导入它们?
- perl - Perl - 管道 gunzip 输出到 File::ReadBackwards
- excel - 如何粘贴到最后填充的行而不包括第一行(标题)?