我正在学习并尝试使用一个有状态的小部件来创建一个应用程序以显示列表。我的代码如下所示:
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(),
),
),
);
}
}
,状态微件代码为: 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(),
);
}
}
交易类如下:
Transaction.dart
import 'package:flutter/foundation.dart';
class Transaction {
final String name;
Transaction({@required this.name});
}
但收到错误:
══╡小工具图书馆的例外情况提示 ╞═════════════════════════════════════════════════ ══════════ 在构建UserTransactions(脏,状态: _UserTransactionsState#c1fe3): 列的子级不得包含任何null值,但是null值是 在索引0处找到 相关的引起错误的小部件是: UserTransactions org-dartlang-app:///packages/test_01/main.dart:14:18
我尝试了很长时间,但仍然无法弄清楚。当我想调试时,我希望使用打印行获得正确的输出。看起来如下:
答案 0 :(得分:4)
FromSQL
由于没有返回任何值,所以您正在获得此错误,因此,您的tolist()方法正在重新调整一个空对象列表
答案 1 :(得分:0)
我认为,也许您没有使用Column子项之类的小部件,而flutter无法绘制它们。 “交易”不是小部件。