Флаттер LiveData для просмотра изменений результатов запроса sqlite - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь показать, сколько строк записи в моей таблице транзакций. В Android, я могу использовать liveata для наблюдения за изменениями данных без дополнительного шага, как получить результат подсчета строк после вставки или удаления. Но в трепетании мне нужно сделать дополнительный шаг.

Я уже пробовал использовать шаблон потока и блока, но дополнительный шаг все еще требует вызова в блоке после добавления или удаления.

  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();
  }

1 Ответ

0 голосов
/ 21 июля 2019

Так что после долгого времени я выложил этот вопрос, наконец-то флаттер вышел какое-то решение

https://pub.dev/packages/floor.

https://pub.dev/packages/moor_flutter

...