Ich erhalte einen Fehler in dieser Zeile this.apiService.getGifs (searchValue.value) .subscribe (Daten => this.results = Daten);Der Typ 'void' kann nicht dem Typ 'any []' zugewiesen werden, wenn Daten an Dienst gesendet werden
Mein Code funktioniert, aber ich bekomme diesen Fehler, also möchte ich herausfinden, wie es zu beheben ist. Ich glaube, es liegt an diesem Teil .subscribe(data=>this.results=data);
, aber ohne es Code funktioniert nicht.
apiService
@Injectable()
export class ApiService {
private results = new BehaviorSubject([]);
public getResults$(){
return this.results.asObservable();
}
constructor (private http: Http) {}
link = 'http://api.giphy.com/v1/gifs/search?q=';
ApiKey = 'MaklOv0qiTVslRvJlBShgpr46LWPs5Z0';
public getGifs(searchValue:string) {
return this.http.get(this.link + searchValue +'&api_key='+ this.ApiKey)
.map((res:Response) => this.results.next(res.json().data));
}
}
Komponente, die Daten senden
export class SearchComponent implements OnInit {
results = []
constructor(private apiService: ApiService) { }
ngOnInit() {
}
onSearch(searchValue) {
this.apiService.getGifs(searchValue.value).subscribe(data=>this.results=data);
}
}
Component Service, der Daten
export class OutputComponent implements OnInit {
results = [];
constructor(private apiService: ApiService){
apiService.getResults$().subscribe(data => this.results = data)
}
Der nächste Aufruf eines Betreffs gibt nichts zurück. Sie versuchen, einem array-typed-Feld nichts zuzuordnen. Was ist unklar von dem Fehler? – jonrsharpe