flutter - Flutter/Dart:在 null 上调用了 getter 'length'
问题描述
I/flutter ( 9255): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 9255): The following NoSuchMethodError was thrown building FutureBuilder<List<Asset>>(dirty, state:
I/flutter ( 9255): _FutureBuilderState<List<Asset>>#734fc):
I/flutter ( 9255): The getter 'length' was called on null.
I/flutter ( 9255): Receiver: null
I/flutter ( 9255): Tried calling: length
--------代码片段 ----------
Future<List<Asset>> getAssets() async {
var dbClient = await db;
List<Map> list = await dbClient.rawQuery('SELECT * FROM Assets');
print("created List Map from DB table Assets");
//List<Asset> assets = List();
List assets = [];
for (int i = 0; i < list.length; i++) {
assets.add(Asset());
}
print(assets.length);
return assets;
}
解决方案
rawQuery
正在返回 null。
你应该像这样的更新代码
List<Map> list = (await dbClient.rawQuery('SELECT * FROM Assets'))??[];
推荐阅读
- sql-server - 如何使用 SQL 单元测试项目清理数据库
- oracle - 关于 IF 语句中 COMMIT 和 ROLLBACK 的说明
- r - 在r中使用lubridate从dob中提取年份
- python - Python:从 CSV 创建项目列表并找到每个项目的最大日期
- service-worker - 如何在反应项目(npx create-react-app)中配置服务工作者?
- django - Django, Docker, collectstatic, UnicodeEncodeError: 'utf-8' codec can't encode characters in position 0-1: surrogates not allowed
- c++ - 简化 GiNaC 表达式
- swift - Swift 中的不可变引用
- android - 从使用协程进行网络调用的服务内部发送广播
- lombok - 有没有办法从@EqualsAndHashCode 中排除除@Id 列之外的所有字段