من داخل فلاتر بخشی از کد مجبور هستم به صورت زیر اطلاعات رو از آدرسی بگیرم که روند دریافت اطلاعات سالم هست.
اما داخل initState که متد setValueProduct صدا زده شده قبل اینکه مقادیر داخلیش setState بشه میره و build رو اجرا میکنه و عملا ارور میده چون متغییر products خالی هست.
class _ProductState extends State<Product> {
ScrollController _listScrollController = ScrollController();
late List<ProductModel> products;
Future<Map> _getProducts({int page = 1}) async {
var response =
await http.get(Uri.parse("http://192.168.43.9/products?page=${page}"));
var responseDecode = json.decode(response.body)['data'];
List<ProductModel> _listProduct = [];
responseDecode.forEach((item) {
_listProduct.add(ProductModel.fromJson(item));
});
return {"current_page": 1, "products": _listProduct};
}
setValueProduct({page = 1}) async {
var response = await _getProducts(page: page);
print(response['products']);
products = [];
setState(() {
products.addAll(response['products']);
});
}
@override
initState() {
// TODO: implement initState
super.initState();
setValueProduct();
}
ممنون میشم راهنماییی کنید.
اولین نفری باشید که به این پرسش کمک میکند و مسیر حل مشکل را باز میکند.
اولین پاسخ را بنویسیدشاید پاسخ شما همینجا باشد