#sqlite #flutter #android-livedata
#sqlite #flutter #android-livedata
Вопрос:
Я пытаюсь показать, сколько строк записей в моей таблице транзакций. В Android я могу использовать livedata для наблюдения за изменениями данных без дополнительных шагов, таких как получение результата подсчета строк после вставки или удаления. Но в flutter мне нужно выполнить дополнительный шаг.
Я уже пытаюсь использовать шаблон stream и bloc, но дополнительный шаг по-прежнему требует вызова блока после добавления или удаления.
Future<List<TempPremixDetailWithIp>> getAll() async {
var db = await AppDb().database;
var res = await db.rawQuery("""
SELECT
temp_premix_detail.*,
item_packing.sku_code,
item_packing.sku_name
FROM temp_premix_detail
LEFT JOIN item_packing ON temp_premix_detail.item_packing_id =
item_packing.id
ORDER BY temp_premix_detail.id DESC
""");
List<TempPremixDetailWithIp> list = res.isNotEmpty
? res.map((c) => TempPremixDetailWithIp.fromJson(c)).toList()
: [];
return list;
}
_loadTempPremixDetailList() async {
final list = await TempPremixDetailDao().getAll();
_tempPremixDetailListSubject.add(list);
}
deleteTempPremixDetail(int itemPackingId) async {
await TempPremixDetailDao().deleteById(itemPackingId);
await _loadTempPremixDetailList();
await _loadItemPackingList();
}