我正在学习并尝试使用一个有状态小部件来创建一个应用程序来显示列表。我的代码如下所示:
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(),
);
}
}
交易类如下所示:
交易.dart
import 'package:flutter/foundation.dart';
class Transaction {
final String name;
Transaction({@required this.name});
}
但出现错误:
══╡小组件库捕获异常 ╞═══════════════════════════════════════ ══════════ ══════════ 构建 UserTransactions(dirty, state: 时抛出以下断言: _UserTransactionsState#c1fe3): 列的子项不得包含任何空值,但空值是 在索引 0 处找到 相关的导致错误的小部件是: UserTransactions org-dartlang-app:///packages/test_01/main.dart:14:18
我尝试了很长时间,但仍然无法弄清楚。当我进行调试时,我使用打印行得到正确的输出。它看起来像下面这样:
最佳答案
@override
Widget build(BuildContext context) {
print('==========================================');
print(_userTransactionLists.length);
return Column(
children: _userTransactionLists.map((tx) {
print(tx.name);
return Text(tx.name);
}).toList(),
);
}
您收到此错误是因为您没有返回任何值,因此您的 tolist()
方法正在重新调整空对象列表
关于flutter - 如何解决Flutter错误Column的children不能包含任何null值,但在索引0处发现null值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521626/