ListView.builder
我想顯示從前一個屏幕接收的 json 數據。以下是到目前為止我嘗試過的示例代碼。
第一頁.dart
Navigator.push(
context,
CupertinoPageRoute(
builder: (context) => MyOrderDetails(
storeItems: order.inDetail!.menuItems!
)));
這是我傳遞給 Next Screen 的示例 json
{
"item_name": "Test",
"quantity": 1,
"subtotal": "434.78"
}
MyOrderDetail.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
}),
],
),
);
}
}
你的變量應該是這樣的。List 本身是不夠的,您應該聲明哪個類適用於該列表。
final List<YourDataClass> storeItems;
const MyOrderDetails(
{Key? key,
required this.storeItems})
: super(key: key);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句