条件必须具有 bool 静态类型

Adr*_*man 8 sqlite dart flutter flutter-futurebuilder

有什么方法可以在这种情况下使用未来的布尔值,或者有更好的方法吗?

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);
                    }
                });
            },
        ),
    );
}
Run Code Online (Sandbox Code Playgroud)

jit*_*555 3

使用initState()类似

 bool alreadySaved = false;

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