【问题标题】:How to pass List data one screen to another (StatefulWidget) in flutter如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)
【发布时间】: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你的答案

标签: flutter flutter-test


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-01-11
    • 2023-01-23
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 2021-03-30
    • 2022-01-12
    相关资源
    最近更新 更多