Javascript 四角字体;财产';数据';不存在于类型';任何[]和#x27;
我正在使用TypeScript在Angular 4上构建一个应用程序。我不知道为什么会出错Javascript 四角字体;财产';数据';不存在于类型';任何[]和#x27;,javascript,angular,typescript,Javascript,Angular,Typescript,我正在使用TypeScript在Angular 4上构建一个应用程序。我不知道为什么会出错 类型“any[]”上不存在属性“data” 对于这样一个表达式。我从一个组件中取出了这个 LoadAllUsers(): void { this.AllUsers.Loading = true; let AdditionalParams = { 'page': this.AllUsers.CurrentPage }; this.UserService.All(A
类型“any[]”上不存在属性“data”
对于这样一个表达式。我从一个组件中取出了这个
LoadAllUsers(): void {
this.AllUsers.Loading = true;
let AdditionalParams = {
'page': this.AllUsers.CurrentPage
};
this.UserService.All(AdditionalParams)
.subscribe(
(users) => {
this.AllUsers.Users = users.data;
this.AllUsers.Data = users;
this.AllUsers.Loading = false;
this.AllUsers.Loaded = true;
console.log ("Users response: ", this.AllUsers, this.AllUsers.Users);
},
(error)=> {
this.AllUsers.Loading = false;
console.log ("THE ERROR: ", error);
this.AllUsers.RequestStatus = error.status=0;
if (typeof error.json == 'function' && error.status!=0) {
let errorObject = error.json();
this.AllUsers.RequestError = errorObject;
} else {
this.AllUsers.RequestError = "net::ERR_CONNECTION_REFUSED";
}
this.AllUsers.HasRequestError = true;
});
}
我只能通过使用来绕过这个错误<代码>(用户)=>此。准备用户(用户)
我一定是遗漏了打字稿的一些内容。奇怪的是,我可以使用
error.status
我猜您应该将服务中的方法签名更改为All(AdditionalParams:any):Observable
,当然,如果您有用户模型的话。
此外,变量和方法应该以小写开头。我猜您应该将服务中的方法签名更改为类似于
All(AdditionalParams:any):Observable的内容,当然,如果您有用户模型的话。
此外,变量和方法应以小写字母开头。在(用户)
参数中从服务返回的数据是一个数组。所有数组都具有相同的属性和方法.data
不是数组的属性或方法
您可以找到数组类型上的所有属性和方法
可以帮助您调试特定问题的方法是将(用户)
记录到控制台,并查看数据的外观:
LoadAllUsers(): void {
this.UserService.All(AdditionalParams)
.subscribe(
(users) => {
console.log(users);
});
}
您的数据可能不会以您期望的形式返回给您。在(用户)
参数中从您的服务返回的数据是一个数组。所有数组都具有相同的属性和方法.data
不是数组的属性或方法
您可以找到数组类型上的所有属性和方法
可以帮助您调试特定问题的方法是将(用户)
记录到控制台,并查看数据的外观:
LoadAllUsers(): void {
this.UserService.All(AdditionalParams)
.subscribe(
(users) => {
console.log(users);
});
}
您的数据可能不会以您期望的形式返回给您。消息是明确的。“All”方法返回数组的可观测值(observable
)。您试图获取数组的数据属性,但该属性不存在。你应该反复浏览列表以获取每个用户的数据。是的,我现在意识到了这一点。我把它改成这样;All(AdditionalParams:object):Observable{你为什么到处都使用大写字母?非常感谢!新手!消息是明确的。“All”方法返回数组的Observable(Observable
)。您试图获取数组的数据属性,但它不存在。您应该迭代列表以获取每个用户的数据。是的,我现在意识到了。我已将其更改为如下所示;All(AdditionalParams:object):Observable{您为什么到处都使用大写字母?非常感谢!新手!