繁体   English   中英

如何解决 Flutter 错误列的子项不得包含任何 null 值,但在索引 0 处找到 null 值?

[英]How to solve Flutter error Column's children must not contain any null values, but a null value was found at index 0?

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

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(),
        ),
      ),
    );
  }
}

stateul 小部件代码是: 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(),
    );
  }
}

事务 class 如下所示:

Transaction.dart

import 'package:flutter/foundation.dart';

class Transaction {
  final String name;
  Transaction({@required this.name});
}

但得到错误:

theftion trible tribrars捕获的例外╞═════════════════════════════════════════ ══════════════════ The following assertion was thrown building UserTransactions(dirty, state: _UserTransactionsState#c1fe3): Column's children must not contain any null values, but a null value was found在索引 0 相关的导致错误的小部件是:UserTransactions org-dartlang-app:///packages/test_01/main.dart:14:18

我尝试了很长时间,但仍然无法弄清楚。 当我要调试时,我正在使用打印线找到正确的 output。 它如下所示:

在此处输入图像描述

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

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

我想,也许你没有使用像 Column children 这样的小部件,flutter 无法绘制它们。 “交易”不是小部件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM