错误TypeError:无法读取未定义离子4的属性“用户名”

时间:2019-08-29 14:17:07

标签: android angular authentication ionic4

您好,我使用json本地文件有两个用户:

{
    "usuarios": [
        {
            "usuario": "david",
            "clave": "123456",
            "username": "David Ortega Mazzini"
        },
        {
            "usuario": "prueba",
            "clave": "123456",
            "username": "David Ortega Mazzini"
        }
    ]
}

,一项服务将检索有关此文件的信息。

  getData(user:string,clave:string):Observable<UserOptions[]> {
    return this.http.get<UserOptions[]>(this.dataUrl)
 }

和login.page.ts调用此服务

this._logic.getData(user,password)
    .subscribe(
      (res) => {this.usuarios.username = res[0].username;
        if (this.usuarios.username.toString === null){
          this.showError()
        } else {
          console.log(this.usuarios.username.toString);
          this.router.navigateByUrl("home");
        }
      },
      (error) => {console.log(JSON.stringify(error));}
    )   

但是告诉我这个错误

错误TypeError:无法读取未定义离子4的属性“用户名”

我做错了什么?非常感谢!

1 个答案:

答案 0 :(得分:0)

假设服务直接传递给您在问题中显示的json,则res[0]在json中不是值。

res是对象{usuarios:[{...}, {...}]}。简而言之,res是一个对象,而不是数组。如果您尝试访问usuarios数组中的第一个元素,则需要将其命名为res.usuarios[0].username

另一种可能的解释是,在尝试设置用户名属性之前未定义this.usuarios