【发布时间】:2020-09-16 06:52:51
【问题描述】:
Future<List<Asset>> fetchAssetsFromDatabase() async {
var dbHelper = DBHelper();
Future<List<Asset>> assets = dbHelper.getAssets();
assets.then((value) => handleValue(value)).catchError((error) => handleError(error));
return assets;
}
“资产”中定义了 6 个字符串。当 getAssets 在没有添加记录的情况下执行(db 表为空)时,我收到以下错误。
“E/flutter (23529): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] 未处理异常: NoSuchMethodError: 方法 '[]' 在 null 上被调用。”
谁能详细说明在函数“handValue”和“HandleError”中写什么,这样我就可以避免在 DB 表没有记录时首次启动 Listview 时出现异常。
Expanded(
child: FutureBuilder<List<Asset>>(
future: fetchAssetsFromDatabase(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: filterAssets.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(filterAssets[index].name),
subtitle: Text(filterAssets[index].url),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => View(
assets: Asset(
id: filterAssets[index].id,
name: filterAssets[index].name,
username: filterAssets[index].username,
password: filterAssets[index].password,
url: filterAssets[index].url,
notes: filterAssets[index].notes,
other: filterAssets[index].other),
),
),
);
},
);
});
} else if (snapshot.hasData == false) {
return new Text("No Data found", textAlign: TextAlign.center);
}
return new Container(
alignment: AlignmentDirectional.center,
child: new CircularProgressIndicator(),
);
},
),
),
【问题讨论】:
-
分享您的
ListView代码。
标签: listview flutter exception dart