【发布时间】:2021-07-20 18:54:19
【问题描述】:
你好,我是新的供应商。我在这里写了我有问题的步骤。 1- 之后我调用了 api,我的模型类中有数据。 2-然后在 ChangeNotifer 类中,我想制作 Model 类对象中的列表的 getter。 我无法将模型类响应数据添加到此 getter 变量。
class CartProductNotifier with ChangeNotifier{
final _webServices = WebServices();
GetProductDetailsModel _getProductDetailsModel;
List<Vd> _vdList = [];
callApi(String handle) {
return _webServices.getProductDetails(handle).then((value) {
_getProductDetailsModel = value;
_vdList = value.data.product.vd; // after api call done data is in _vdList
return value;
});
}
}
现在我正在创建 getter
List<Vd> get vdata {
return _vdList;
}
但是当我从我的 ProductDetailsScreen 类中调用这个 getter 时,我得到的是空白数组或 null。
Consumer<CartProductListNotifier>(
builder: (context, value, child) {
return Text(
value.vdata[index].quantitySelectedByUser.toString(), //data is not coming here
style: TextStyle(
fontSize: kFontSize16, fontWeight: kMediumFontWeight, color: Colors.black),
);
},
),
现在我无法更新消费者通知程序中的文本小部件中的值。
这是我的 main.dart
MultiProvider(
providers: [
ChangeNotifierProvider(
create: (context) => CartProductListNotifier(),
),
],
child: MaterialApp(
title: 'Application',
debugShowCheckedModeBanner: false,
请解决这个问题或告诉我另一种使用模型类和提供者调用 Api 的好方法。 提前致谢。
【问题讨论】:
-
我们需要查看你在哪里实例化了
Provider(通常是ChangeNotifierProvider,通常在 main.dart 中完成)并检查你是否在正确的地方用正确的孩子。这些链接可能会对您有所帮助:stackoverflow.com/a/66486075/2301224 和 stackoverflow.com/a/66486075/2301224。 -
我编辑了问题。但我的问题是,当调用 cousumer 时,getter 会返回 getter 中的空数组,没有数据我如何在 getter 中初始化数据。
-
作为一个测试,您能否从您的
CartProductNotifier中检索您的Consumer中的硬编码数据? -
实际上我没有尝试使用列表类型对象进行硬编码。但我确信硬编码数据会出现。我试过String,int类型,它会来
-
问题是我无法将来自 API 的数据传递给 getter。
标签: flutter dart flutter-dependencies provider flutter-change-notifier