簡體   English   中英

如何在 Flutter 中顯示從上一屏幕接收到的 json 數據

[英]How to display received json data from previous screen in Flutter

我想在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
              }),
        ],
      ),
    );
  }
}

你的變量應該是這樣的。 列表本身是不夠的,您應該聲明哪個 class 用於該列表。

final List<YourDataClass> storeItems;
  const MyOrderDetails(
      {Key? key,
      required this.storeItems})
      : super(key: key);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM