علیرضا صالحی
2 سال پیش توسط علیرضا صالحی مطرح شد
0 پاسخ

اجرای متد build فلاتر قبل از مقدار دهی کامل در initState

من داخل فلاتر بخشی از کد مجبور هستم به صورت زیر اطلاعات رو از آدرسی بگیرم که روند دریافت اطلاعات سالم هست.
اما داخل 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();
  }

ممنون میشم راهنماییی کنید.


ثبت پرسش جدید

به همدیگه کمک کنیم

به علیرضا صالحی کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام