Json TypeError:无法读取属性';地图';未定义的具有角度v6的
由于某些原因,响应JSON没有正确映射 这是我的html。 profile-search.component.htmlJson TypeError:无法读取属性';地图';未定义的具有角度v6的,json,angular,typescript,typeerror,Json,Angular,Typescript,Typeerror,由于某些原因,响应JSON没有正确映射 这是我的html。 profile-search.component.html <h3>Enter Username</h3> <input (keyup)="search($event.target.value)" id="name" placeholder="Search"/> <ul> <li *ngFor="let package of packages$ | async">
<h3>Enter Username</h3>
<input (keyup)="search($event.target.value)" id="name" placeholder="Search"/>
<ul>
<li *ngFor="let package of packages$ | async">
<b>{{package.name}} v.{{package.repos}}</b> -
<i>{{package.stars}}</i>`enter code here`
</li>
</ul>
到
login:data.login和login:entry.login,但不断出现以下错误
http错误处理程序.service.ts:33类型错误:无法读取属性“map”
未定义的
在MapSubscriber.project(profile search.service.ts:49)
在MapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber.\u下一步
(地图js:75)
在MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next
(订户:js:93)
在MapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber.\u下一步
(地图js:81)
在MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next
(订户:js:93)
在FilterSubscriber.push../node_modules/rxjs/_esm5/internal/operators/filter.js.FilterSubscriber.\u下一步
(filter.js:85)
在FilterSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next
(订户:js:93)
在MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber.notifyNext
(mergeMap.js:136)
在InnerSubscriber.push../node_modules/rxjs/_esm5/internal/InnerSubscriber.js.InnerSubscriber.\u下一步
(InnerSubscriber.js:20)
在InnerSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next
(订户:js:93)
数据中的结果
。结果
可能是未定义的
,请检查数据
对象是否与您期望的架构匹配。数据中的结果
。结果可能是未定义的
,检查数据
对象是否与您期望的架构匹配。映射
处理数组
,但是这个.http.get(${searchUrl}/${packageName}
)返回的对象不是数组
因此,
data.results
是未定义的。map
处理array
但是这个.http.get(${searchUrl}/${packageName}
)返回的对象不是数组
因此,
数据。结果
未定义。这是我如何将对象转换为数组的,如果有人有更好的方法,请告诉我
return this.http.get(`${searchUrl}/${packageName}`).pipe(
map((data: any) => {
console.log(data);
var profile = Object.keys(data).map(function(key) {
return [(key) + ': ' + data[key]];
}
);
console.log(profile);
data = profile;
return data;
}),
catchError(this.handleError<Error>('search', new Error('OOPS')))
);
返回这个.http.get(`${searchUrl}/${packageName}').pipe(
地图(数据:任意)=>{
控制台日志(数据);
var profile=Object.keys(数据).map(函数(键){
返回[(键)+':'+数据[键];
}
);
控制台日志(概要文件);
数据=配置文件;
返回数据;
}),
catchError(this.handleError('search',new Error('OOPS'))
);
}
}这是我如何将对象转换为数组的,如果有人有更好的方法,请告诉我
return this.http.get(`${searchUrl}/${packageName}`).pipe(
map((data: any) => {
console.log(data);
var profile = Object.keys(data).map(function(key) {
return [(key) + ': ' + data[key]];
}
);
console.log(profile);
data = profile;
return data;
}),
catchError(this.handleError<Error>('search', new Error('OOPS')))
);
返回这个.http.get(`${searchUrl}/${packageName}').pipe(
地图(数据:任意)=>{
控制台日志(数据);
var profile=Object.keys(数据).map(函数(键){
返回[(键)+':'+数据[键];
}
);
控制台日志(概要文件);
数据=配置文件;
返回数据;
}),
catchError(this.handleError('search',new Error('OOPS'))
);
}
}我通过消除“.results”解决了这个问题 从 到
我通过消除“.results”解决了此问题 从 到
数据,
package$
是否正确,您只需要在您的模板中显示它?返回的数据
是什么样子的?数据,包$
是否正确,您只需要在您的模板中显示它?返回的数据是什么样子的?奎师那你是对的,我必须把这个对象变成一个数组。之后,我看到了克里希纳的包装,你是对的,我必须把这个物体变成一个阵列。之后,我看到了包裹
return this.http.get(`${searchUrl}/${packageName}`).pipe(
map((data: any) => {
return data.results.map(entry => ({
name: entry.any[0],
} as NpmPackageInfo )
)
return this.http.get(`${searchUrl}/${packageName}`).pipe(
map((data: any) => {
console.log(data);
var profile = Object.keys(data).map(function(key) {
return [(key) + ': ' + data[key]];
}
);
console.log(profile);
data = profile;
return data;
}),
catchError(this.handleError<Error>('search', new Error('OOPS')))
);
.map((data: any) => this.convertData(data.results))
.map((data: any) => this.convertData(data))