条件必须有静态类型的 bool
Condition must have static type of bool
我不能在这里使用 future bool..有什么方法可以在这种情况下使用 future bool..
或者有更好的方法吗?
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);
}
});
},
),
);
}
在initState()
中使用
bool alreadySaved = false;
@override
void initState() {
super.initState();
String pair = "pair_value";
DBHelper.getAllEmployees().then((value) {
setState(() {
alreadySaved = value.contains(pair);
});
});
}
我不能在这里使用 future bool..有什么方法可以在这种情况下使用 future bool.. 或者有更好的方法吗?
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);
}
});
},
),
);
}
在initState()
中使用
bool alreadySaved = false;
@override
void initState() {
super.initState();
String pair = "pair_value";
DBHelper.getAllEmployees().then((value) {
setState(() {
alreadySaved = value.contains(pair);
});
});
}