Condition must have static type of bool

Viewed 15982

I am not able to use future bool here.. is there any way i can use future bool in this type of conditions.. or is there any better way to do this?

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


          }
        });
      },
      ),
    );
  }
1 Answers

Use in initState() like

 bool alreadySaved = false;

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