sqlite 条件必须具有bool静态类型

irlmq6kh  于 2022-12-19  发布在  SQLite
关注(0)|答案(1)|浏览(234)

我不能在这里使用未来布尔值。在这种情况下,有没有什么方法可以使用未来布尔值,或者有没有更好的方法?

Widget _buildRow(String pair) {

    final Future<bool> alreadySaved = DBHelper.getAllEmployees().then((value) => value.contains(pair));
    print("Already saved $alreadySaved");
    print(pair);
    return FutureBuilder(
      future: DBHelper.getAllEmployees(),
      builder: (context, AsyncSnapshot<List<FavrtTableModel>> snapshot) =>
      snapshot.connectionState == ConnectionState.waiting ? Center(
        child: Icon(Icons.more_horiz),
      ):IconButton(
        icon: new  Icon(
          alreadySaved ? Icons.favorite : Icons.favorite_border,
          color:alreadySaved? Colors.red : Colors.white,
        ),onPressed: (){
        setState(() {
          if (alreadySaved) {
            _saved.remove(pair);
            _deleteEmployee(pair);
          } else {
            _saved.add(pair);
            _insert(pair);

          }
        });
      },
      ),
    );
  }
92dk7w1h

92dk7w1h1#

initState()中使用,例如

bool alreadySaved = false;

  @override
  void initState() {
    super.initState();
    String pair = "pair_value";
    DBHelper.getAllEmployees().then((value) {
      setState(() {
        alreadySaved = value.contains(pair);
      });
    });
  }

相关问题