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: метод '[]' был вызван при нулевом значении. "
Может ли кто-нибудь уточнить, что писать в функциях handValue и HandleError, чтобы я мог избежать исключения при первом запуске 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(),
);
},
),
),