【发布时间】:2021-10-02 22:46:27
【问题描述】:
...
Future<List<ProDetails>> getBasket() async {
sharedPreferences = await SharedPreferences.getInstance();
String userDetails =
sharedPreferences.getString(AppConnection.CART_DETAILS.toString());
print("userDetails : " "${userDetails}");
Map<String, dynamic> map = json.decode(userDetails);
print("map result : " + "${map}");
List<ProDetails> cartList;
cartList = (json.decode(userDetails) as List)
.map((i) => ProDetails.fromJson(i))
.toList();
return cartList;
}
...
我在这里发送购物车列表并尝试在下面的代码中获取它。
...
child: FutureBuilder(
future: getBasket(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
print("Snapshot data : " + "${snapshot.data}");
if (snapshot.data == null) {
return Container(
child: Center(
child: CircularProgressIndicator(),
),
);
} else {
return SingleChildScrollView(
child: Column(
children: [
ListView.builder(
itemCount: snapshot.data.length,
// physics: const NeverScrollableScrollPhysics(),
itemBuilder: (BuildContext context, int index) {
return Container(
child: Text("test" + "${index}"),
);
}),
],
),
);
}
},
)),
...
这里的 snapshot.data 为 null,页面正在加载。
控制台结果如下,
...
I/flutter (23990):快照数据:空
I/flutter (23990): userDetails : [{"productId":"117","productName":"MACC Tea Master
混合 40 袋","category_name":"01 盒 (40
Bags)","price":"1.00","quantity":"1","imgUrl":"1605262901.jpg"}]
...
I/flutter (23990):快照数据:null
【问题讨论】:
-
添加
ProDetails和ProDetails.fromJson方法的细节。 -
尝试更改
if (snapshot.data == null)insted of if(snapshot.hasData == null)
标签: function flutter dart parameters snapshot