在颤振中的构造函数列表上使用 .map 方法

Posted

技术标签:

【中文标题】在颤振中的构造函数列表上使用 .map 方法【英文标题】:Using the .map method on a list of constructors in flutter 【发布时间】:2022-01-17 02:15:50 【问题描述】:

我有一个带有构造函数的事务类。使用构造函数方法,我创建了一个交易列表,目的是遍历这些交易并将其内容显示在卡片中,但在尝试使用列表中的 .map 方法时出现错误。

我收到的错误消息是 无法将元素类型“List>”分配给列表类型“Widget”。

我在 [transactions.map((transaction) => ).toList()]

上有错误

代码如下:

class Hompage extends StatelessWidget 
  final List<Transaction> transactions = [
    Transaction(
      id: 't1',
      title: 'First Transaction',
      amount: 1000,
      date: DateTime.now(),
    ),
    Transaction(
      id: 't2',
      title: 'Second Transaction',
      amount: 500,
      date: DateTime.now(),
    )
  ];

  @override
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: const Text('Event Planner'),
      ),
      body: Column(
        // mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        // crossAxisAlignment: CrossAxisAlignment.stretch,
        children: [
          Container(
            width: double.infinity,
            child: Card(
              color: Colors.blue,
              child: Text('CHART'),
            ),
          ),
          Column(
            // children: [
            //   (transactions as List<Map<dynamic, dynamic>>)
            //       .map((transaction) => )
            //       .toList()
            // ],

            children: [transactions.map((transaction) => ).toList()],
          )
        ],
      ),
    );
  


【问题讨论】:

【参考方案1】:
children: [transactions.map((transaction) => ).toList()]

首先,去掉括号,你现在有一个列表列表:

children: transactions.map((transaction) => ).toList()

好的,更好,但由于 children 需要 Widget 类型元素,您不能只映射到任何内容。

children: transactions.map((transaction) => Text(transaction.title)).toList()

好多了。不过,您可能想找到比简单的Text 更高级的东西。

【讨论】:

非常感谢

以上是关于在颤振中的构造函数列表上使用 .map 方法的主要内容,如果未能解决你的问题,请参考以下文章

构造函数具有大量参数的颤振组合

扩展1

super staticfinal关键字加深记忆哦!还有父子类构造函数调用问题

在Mapping时向Automapper提供构造函数参数

js对象和继承总结

unordered_map 中的 C++ 线程(无复制构造函数)