Flutter需要在屏幕之间传递列表

时间:2020-10-29 10:32:14

标签: flutter

我有一个非常简单的列表

{
            "OrderID": 208,
            "CustomerID": 2,
            "TransactionNo": 80,
            "OrderNo": 1,
 
            "OrderCheckouts": {
                "OrderCheckoutID": 207,
                "OrderID": 208,
                "PaymentMode": 1,
                "AmountPaid": 17.3,
                "AmountTotal": 17.3,
  
            },
}

我需要通过屏幕,这样我才能通过

                        onPressed: () {
                          Navigator.push(
                            context,
                            MaterialPageRoute(
                                builder: (context) =>
                                    OrderDetails(text: posts.data[position])
                            ),
                          );
                        },

在其他屏幕上获取这样的数据

class OrderDetails extends StatefulWidget {


  final List text;

  // receive data from the FirstScreen as a parameter
  OrderDetails({Key key, @required this.text}) : super(key: key);

  @override
  _OrderDetailsState createState() => _OrderDetailsState();
}

显示错误type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'

我也这样尝试final List<String, dynamic> text;,但是不起作用,请告诉我如何通过它?

2 个答案:

答案 0 :(得分:0)

您具有Map 类型(JSON数据类型)的单个Object,并希望在List中进行分配。

要处理Json数据,请尝试制作Model类,然后将该模型类的对象作为参考发送。

以下是一些资源-:

  1. https://flutter.dev/docs/development/data-and-backend/json
  2. https://www.youtube.com/watch?v=Ega4EG8ZVM4

也许会对您有所帮助

答案 1 :(得分:0)

posts.data [position] _InternalLinkedHashMap

您可以尝试定义吗?:

Map<String, dynamic> text;