"而不是 String (Flutter)-6ren"> "而不是 String (Flutter)-我到处找,没有找到解决办法。我想从查询中返回结果计数,但遇到了麻烦。继续获取 “ future ”的实例而不是字符串 我正在使用单例模式。 数据库方法(database.dart): Futu-6ren">
gpt4 book ai didi

flutter - 继续返回 "Instance of ' Future"而不是 String (Flutter)

转载 作者:行者123 更新时间:2023-12-03 03:12:12 26 4
gpt4 key购买 nike

我到处找,没有找到解决办法。我想从查询中返回结果计数,但遇到了麻烦。继续获取 “ future ”的实例而不是字符串

我正在使用单例模式。

  • 数据库方法(database.dart):
  •     Future<int> getUnCompletedTaskCount () async {
    final db = await database;
    var result = await db.rawQuery("SELECT * FROM Tasks WHERE isComplete = 0");
    int count = Sqflite.firstIntValue(result);
    return count;
    }
  • 我在 main.dart 中的方法:
  •     getResultCount () async {
    final value = await DBProvider.db.getUnCompletedTaskCount();
    return value;
    }
  • 通过以下方式调用该方法:
  •     getResultCount().toString()

    最佳答案

    我不知道你将如何使用这个函数,如果你需要它来获取已完成任务的数量然后在屏幕上绘制一些东西(比如显示它们的列表或显示它们的数量),我自己使用 FutureBuilder,如下图:

    FutureBuilder<int>(
    future: getResultCount(),
    builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
    if(snapshot.hasData){
    return Text('Number Of completed : ${snapshot.data}');
    }
    return Container();
    },
    )

    所以当它完全获取它时,它会显示一个文本小部件,否则它什么都不显示(空容器)

    但是如果你需要它,让我们说一个方程或其他东西,你可以做这样的事情:

      await getResultCount().then((val){
    // do some operation
    });

    但它再次完全取决于您的代码和需要。

    当您在代码中需要 future 函数的结果时,请使用 await在它之前。

    getResultCount()使用 await当你需要使用它的结果时。

    关于flutter - 继续返回 "Instance of ' Future<dynamic>"而不是 String (Flutter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59204987/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com