class newProductSlider extends Model {
String title;
String price;
String compareAtPrice;
String imageUrl;
newProductSlider({
this.title,
this.price,
this.compareAtPrice,
this.imageUrl
});
List<dynamic> slides =[];
Widget parseData(data, context){
String Title = "Foo"; /*<----- Change This Value during the fetchp Call*/
Future<Map<String, dynamic>> fetchp(thisId) async {
http.Response response = await http.get(
"${URLS.urlsp_base}/$thisId.json"
);
if (response.statusCode != 200) return null;
Map<String, dynamic> product = Map<String, dynamic>.from(json.decode(response.body)['product']);
Title = product["tital"]; /*<----- I tried this to change the String "Title" value but not Working*/
return product;
}
Future<List<Map<String, dynamic>>> fetchc(thisId) async {
http.Response response = await http.get(
"${URLS.urlsc_base}/$thisId/products.json?limit=10"
);
if (response.statusCode != 200) return null;
void _startProcess() async{
await List<Map<String, dynamic>>.from(json.decode(response.body)['products']).forEach((value) {
print(value["id"]);
fetchp(value["id"]);
});
/*return List<Map<String, dynamic>>.from(json.decode(response.body)['products']);*/
}
_startProcess();
/*return _startProcess();*/
}
fetchc(data["data"][0]["itemId"]);
this.slides.add(
newProductSlider(
title: Title,
)
);
return display(context);
}
Widget display(BuildContext context){
List<Widget> x = [];
this.slides.forEach((value){
x.add(
Container(
decoration: new BoxDecoration(
color: HexColor("#FFFFFF"),
borderRadius: new BorderRadius.all(
const Radius.circular(5),
)
),
height: MediaQuery.of(context).size.width / 1,
width: MediaQuery.of(context).size.width / 2.25,
margin: EdgeInsets.symmetric(horizontal: 5.0, vertical: 2.5),
child: Text(value.title),
)
);
});
return Container(
padding: EdgeInsets.fromLTRB(5, 7.5, 5, 7.5),
height: MediaQuery.of(context).size.width / 2 + 70,
decoration: new BoxDecoration(
color: HexColor("#FF0055"),
//borderRadius: new BorderRadius.only( topLeft: const Radius.circular(5.0), topRight: const Radius.circular(5.0)),
borderRadius: new BorderRadius.only(
bottomLeft: const Radius.circular(5),
bottomRight: const Radius.circular(5)
),
),
child: ListView(
scrollDirection: Axis.horizontal,
children: x,
),
);
}
}
Вышесказанное - это то, что я начал, поэтому в основном я хочу отобразить все продукты , которые поступают из Collection Id в представлении списка , для уточнения мне нужно 2 вызова API.
Первый вызов API . чтобы получить Продукты по этой коллекции с использованием идентификатора коллекции , и этот вызов API вернет только идентификаторы продукта .
Второй вызов API . для получения полной информации о продукте на основе результатов первого вызова API