Я извлекаю некоторые поля из параметров запроса и использую их для вызова API. После получения данных с сервера они должны отображаться, однако ничего не происходит (оператор печати подтверждает, что данные получены).
Я использовал этот шаблон внутри OnInit, когда нет соответствующих параметров запроса, и он работает нормально, но на этот раз мне не хватает больше, чем я, поскольку я пытался использовать OnInit вместо OnActivate с жестко закодированными параметрами URL и получить тот же результат, компонент никогда не обновляется с новыми данными, пока не обновится страница вручную. Есть ли способ заставить компонент обновляться после установки объекта рекомендаций?
class SolutionsComponent implements OnInit, OnActivate {
static final url_path = "http://localhost/api/solutions/";
SolutionsComponent();
Recommendations recommendations = null;
@override
void ngOnInit() {
//Google Analytics stuff in here
}
Future<Recommendations> loadRecommendations(url) {
setRecommendationsFromJson(String response) {
return Recommendations.fromJson(json.decode(response));
}
return HttpRequest.getString(url).then(setRecommendationsFromJson);
}
@override
void onActivate(RouterState previous, RouterState current) {
var id = getId(current.queryParameters);
var recommendation = getSolution(current.queryParameters);
var url = "${url_path}${recommendation}_${id}";
loadRecommendations(url).then((data) {
print("${data}");
recommendations = data;
print("${recommendations}");
});
}
}