angularjs 错误错误:未被抓住的(承诺中的):TypeError:无法读取null的属性(阅读“分支”)

wb1gzix0  于 2023-04-04  发布在  Angular
关注(0)|答案(1)|浏览(107)

我在Angular中创建了一个应用程序的 Jmeter 板,每当我尝试访问这个 Jmeter 板时,它都会给出一个错误:
错误错误:未被抓住的(承诺中的):TypeError:Cannot read properties of null(阅读'branch')TypeError:无法读取null的属性(阅读“分支”)
Service中的方法如下所示:

getUserData() {
    let users = window.localStorage.getItem('users');
    let jsonUsers = JSON.parse(users!) 
    console.log("data: ", JSON.parse(jsonUsers.branch.id));

    return jsonUsers.branch.id;
}

我的接口:

export interface Users { 
  id: string; 
  firstName: string; 
  lastName: string; 
  email: string; 
  username: string; 
  branch: Branch[]; 
  roles: string; 
  securityGroups: string; 
}

export interface Branch { 
  company: Company[]; 
  id: string; 
  name: string; 
}

可能发生了什么?对不起,如果我错过了更多的东西,把在怀疑,任何我会添加,如果需要的话。我尝试了几件事,但没有工作。

xdyibdwo

xdyibdwo1#

使用user!,你告诉ts编译器user不是null,所以编译器排除了用户可以是null的选项,但是函数window.location.getItem返回stringnull,所以代码应该是这样的:

getUserData() {
    const users = window.localStorage.getItem('users');
    if (user === null){
       console.error("key 'users' in local storage is 'null'");
       throw new Error("User is not in storage");
    }
    const jsonUsers = JSON.parse(users) 
    console.log("data: ", JSON.parse(jsonUsers.branch.id));

    return jsonUsers.branch.id;
}

问题是window.localStorage.getItem('users')返回null

相关问题