您好,我使用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的属性“用户名”
我做错了什么?非常感谢!
答案 0 :(得分:0)
假设服务直接传递给您在问题中显示的json,则res[0]
在json中不是值。
res是对象{usuarios:[{...}, {...}]}
。简而言之,res是一个对象,而不是数组。如果您尝试访问usuarios数组中的第一个元素,则需要将其命名为res.usuarios[0].username
。
另一种可能的解释是,在尝试设置用户名属性之前未定义this.usuarios
。