Flutter错误列的子项不能包含任何空值,但在索引0处发现空值如何解决?

Fun*_*oss 10 flutter

我正在学习并尝试使用一个有状态小部件来创建一个应用程序来显示一个列表。我的代码如下所示:

main.dart

import 'package:flutter/material.dart';
import './widgets/user_transactions.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Container(
          child: UserTransactions(),
        ),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

状态小部件代码是: user_transactions.dart

import 'package:flutter/material.dart';
import '../models/transaction.dart';

class UserTransactions extends StatefulWidget {
  @override
  _UserTransactionsState createState() => _UserTransactionsState();
}

class _UserTransactionsState extends State<UserTransactions> {
  final List<Transaction> _userTransactionLists = [
    Transaction(name: 'boss 01'),
    Transaction(name: 'boss 02'),
    Transaction(name: 'boss 03'),
    Transaction(name: 'boss 04'),
  ];
  @override
  Widget build(BuildContext context) {
    print('==========================================');
    print(_userTransactionLists.length);
    return Column(
      children: _userTransactionLists.map((tx) {
        Text(tx.name);
        print(tx.name);
      }).toList(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

事务类如下所示:

交易.dart

import 'package:flutter/foundation.dart';

class Transaction {
  final String name;
  Transaction({@required this.name});
}
Run Code Online (Sandbox Code Playgroud)

但得到错误:

???小部件库捕获的异常 ????????????????????????????????????????????? ??????????????? 以下断言被抛出构建 UserTransactions(dirty, state: _UserTransactionsState#c1fe3): Column's children must not contain any null values, but a null value was found at index 0 相关的导致错误的小部件是: UserTransactions org-dartlang-app: ///packages/test_01/main.dart:14:18

我尝试了很长时间,但仍然无法弄清楚。当我准备调试时,我正在使用打印行获得正确的输出。它看起来像下面这样:

在此处输入图片说明

Con*_* N. 20

@override
Widget build(BuildContext context) {
    print('==========================================');
    print(_userTransactionLists.length);
    return Column(
      children: _userTransactionLists.map((tx) {
       print(tx.name);
       return Text(tx.name);
      }).toList(),
    );
  }
Run Code Online (Sandbox Code Playgroud)

您收到此错误是因为您没有返回任何值,因此您的tolist()方法正在重新调整空对象列表