如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)

Posted

技术标签:

【中文标题】如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)【英文标题】:How to pass List data one screen to another (StatefulWidget) in flutter 【发布时间】:2021-11-07 14:00:01 【问题描述】:

我在一个屏幕中有卡片数据,我将卡片文本保存在列表中。所以当我按下(onTap)我的卡片时我需要做文本数据发送到另一个屏幕。在第二个屏幕中我有一些文本字段和卡片值需要填写在此文本字段中。

这是我的卡片屏幕:-

class _LoadDataState extends State<LoadData> 
  String cupcakeName = '';
  String cupcakeDesc = '';
  String cupcakePrice = '';
  String listDocID = '';
  var cakeData = [];
  List<String> strArr = [];
  @override
  Widget build(BuildContext context) 
        return Container(
          child: ListView(
              return Card(
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(12)),
                child: new InkWell(
                  onTap: ()  //This is the methord I need to send my data
                    cupcakeName = (data['cupcake_name']);
                    cupcakeDesc = (data['description']);
                    cupcakePrice = (data['price']);
                    strArr = [cupcakeName, cupcakeDesc, cupcakePrice];

                    print(strArr);
                  ,
                  child: Container(
                    padding: EdgeInsets.all(16),
                    child: Column(
                      children: <Widget>[
                        Text(
                          data['cupcake_name'],
                          style: TextStyle(
                            fontSize: 20,
                            fontWeight: FontWeight.bold,
                          ),
                        ),
                  ).toList(),
                 ),

这是我的第二个屏幕文本字段:-

  Widget build(BuildContext context) 
    return Scaffold(
      body: ListView(
        shrinkWrap: true,
        children: <Widget>[
          DropDown(),
          Form(
            key: _cupcakeKey,
            autovalidateMode: AutovalidateMode.always,
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: TextFormField(
                decoration: InputDecoration(
                controller: cupCake,
                validator: (_val) 
                  if (_val!.isEmpty) 
                    return "Can't Be Empty";
                   else 
                    return null;
                  
                ,
                onChanged: (cupcake) 
                  cupcakeName = cupcake;
                ,
              ),
            ),
          ),

【问题讨论】:

是This你的答案 【参考方案1】:

您可以使用 Flutter Navigator 1.0 来实现这一点。 尝试将参数传递到第二页 Pass arguments to a named route

【讨论】:

以上是关于如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中将数据从一个屏幕传递到另一个屏幕是 null

如何将道具从一个屏幕传递到另一个屏幕并显示? [复制]

如何在颤动的两个不同屏幕上使用相同的块?

如何在颤动中将商品计数从购物车屏幕更新到餐厅详细信息屏幕并返回到餐厅详细信息屏幕?

如何从一个类屏幕获取值到另一个类并在颤动中填充这些值?

如何在 FLutter 中使用 pushNamed 将数据从一个屏幕传递到另一个屏幕?