戻り値に単一オブジェクトが1つしかない場合は、.json()から返される応答で.filter()メソッドが機能しません 。私はこの問題にどのように対処するかわかりません。角度のある.filter()がJSONレスポンスで動作しない
getFavorites() {
const userId = this.authService.getActiveUser().uid;
return this.http.get(this.databaseAddress + userId + '.json')
.map(
(response: Response) => {
return response.json();
})
.do(
(data) => {
if(data) {
this.favorites = data;
}else {
this.favorites = [];
}
})
}
this.favoritesService.getFavorites()
.subscribe(
(list: Recipe[]) => {
if(list) {
this.favoriteRecipes = list.filter(
item => item !== null
);
} else {
this.favoriteRecipes = [];
}
}
);
エラーが返さ:APIから返されていないデータの場合
ERROR TypeError: list.filter is not a function
。 FilterはJS配列メソッドです。配列を持たない場合は使用できません。 – jonrsharpe
これを回避する方法はありますか? –
空の配列を作成し、jsonが登録する前にmap関数で応答するiterating jsonを埋めます。だから毎回json配列を返すことができます。 –