【问题标题】:Flutter, how to implement "Favorites" with local dbFlutter,如何用本地数据库实现“收藏夹”
【发布时间】:2023-02-02 16:03:09
【问题描述】:

我想在我的应用程序中实现“收藏夹”,数据卡内有一个“收藏夹”图标,允许用户标记或取消标记收藏夹。有读取本地数据库的功能,查看记录是否被标记,并显示相应的图标。

Widget setFavouriteIcon(_id) {
  bool marked = markedFavourites(_id);
  if (marked == true) {
    return GestureDetector(
      onTap: (){
        addFavourites(_id);
      },
      child: Icon(
        size: 24,
        Icons.favorite_border_outlined,
        color: Colors.red,
      ),
    );
  }else{
    return GestureDetector(
      onTap: (){
        removeFavourites(_id);
      },
      child: Icon(
        size: 24,
        Icons.favorite,
        color: Colors.red,
      ),
    );
  }
}

markedFavourites() 假设是一个异步函数来读取本地数据库,但我得到了一个编译错误:'Future' 类型的值不能分配给 'bool' 类型的变量。

我应该如何从未来获得布尔值?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    你可以得到这样的回应:

    Future marked = await markedFavourites(_id); 之后只需检查标记是否为空 在那之后做同样的方式你正在使用你的代码

    【讨论】:

      【解决方案2】:

      是的。您应该使用 .then()async await 将未来值插入变量。

      markedFavourites(_id).then((value)
           {bool marked = value}
      );
      

      就这么写。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 2023-01-22
        • 2021-06-05
        • 2020-12-17
        • 1970-01-01
        • 2021-03-23
        相关资源
        最近更新 更多