Flutter LiveData观看sqlite查询结果更改

时间:2019-04-10 00:19:41

标签: sqlite flutter android-livedata

我试图显示交易表中有多少行记录。在android中,我可以使用livedata来观察数据更改,而无需执行其他步骤,例如在插入或删除后重新获得行数的结果。但在扑朔迷离中,我需要执行其他步骤。

我已经尝试使用流和块模式,但是在添加或删除后仍然需要在块中调用其他步骤。

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

0 个答案:

没有答案