【发布时间】:2022-11-18 03:03:29
【问题描述】:
我想显示从上一屏幕收到的 ListView.builder 中的 JSON 数据。以下是到目前为止我已经尝试过的示例代码。
第一页.dart
Navigator.push( context, CupertinoPageRoute( builder: (context) => MyOrderDetails( storeItems: order.inDetail!.menuItems! )));这是我传递给下一个屏幕的示例 json
{ "item_name": "Test", "quantity": 1, "subtotal": "434.78" }我的订单详情.dart
class MyOrderDetails extends StatefulWidget { final List storeItems; const MyOrderDetails( {Key? key, required this.storeItems}) : super(key: key); @override State<MyOrderDetails> createState() => _MyOrderDetailsState(); } class _MyOrderDetailsState extends State<MyOrderDetails> { @override Widget build(BuildContext context) { var height = MediaQuery.of(context).size.height; var width = MediaQuery.of(context).size.width; var lang = translator.activeLanguageCode; return Scaffold( appBar: AppBar( elevation: 0, ), body: ListView( children: [ ListView.builder( shrinkWrap: true, scrollDirection: Axis.vertical, itemCount: widget.storeItems.length, itemBuilder: (BuildContext context, int index) { return Text(widget.storeItems[index]['item_name']); // Getting error here }), ], ), ); } }
【问题讨论】:
-
你的代码看起来没问题。问题是什么?
-
它显示错误类“MyOrdersHistoryInDetailMenuItems”没有实例方法“[]”。接收者:'MyOrdersHistoryInDetailMenuItems' 的实例尝试调用:[]("item_name")