当我想要显示结果数据时,我得到未定义。
这仅在 progress 数组中发生。
其余数据没有这种问题。
为什么会这样,我该如何解决?
console.log(this.splineChart)
[{…}]
0:
data: Array(1)
0: Array(2)
0: undefined
1: undefined
ts:
user: User[];
splineChart = [];
load() {
this.route.params
.pipe(
switchMap(
(params: Params) => {
if (params['id']) {
return this._peopleService.getPeopleById(params['id'])
}
return of(null)
}
)
)
.subscribe(
(user: User[]) => {
this.splineChart = [{
data: user.map(function (item) {
return [item.progress.tasks, item.progress.week];
})}]
},
error => {
console.log(error)
}
)
}
我的json文件::
{
"users": [
{
"id": 1,
"fname": "Tommie",
"lname": "Shurtleff",
"photo": "tommie",
"money": "667.16",
"progress": [
{
"id": 1,
"week": 1,
"tasks": 29
},
...
]
}
]
}
答案 0 :(得分:1)
Progress是一个数组,您将其视为对象。 item.progress.tasks
不适用于数组。
您必须遍历item.progress
才能获得期望的结果。
在下面替换您的订购部分。
this.splineChart = [{
data: user.map(function(item) {
return item.progress.map(progress => [progress.tasks, progress.week]);
})
}];
请参见下面的示例。
const user = [{
"id": 1,
"fname": "Tommie",
"lname": "Shurtleff",
"photo": "tommie",
"money": "667.16",
"progress": [{
"id": 1,
"week": 1,
"tasks": 29
},
{
"id": 1,
"week": 2,
"tasks": 30
},
]
}];
let splineChart;
this.splineChart = [{
data: user.map(function(item) {
return item.progress.map(progress => [progress.tasks, progress.week]);
})
}];
console.log(this.splineChart)
答案 1 :(得分:-1)
尝试激活路线,例如:
React.memo
然后
Parent
}
希望,它将为您提供帮助。