Flutter/Dart - FutureBuilder bool not returning bool



ChangeNotifierProvider提供了一个布尔值,它从SharedPreferences获取true或false。它应该更新为";真";一旦用户登录。我从FutureBuilder调用这个布尔值。然而,我得到的不是正确的布尔值,而是CircularProgressIndicator(),指示出了问题。这是代码;

Widget build(BuildContext context) {
var socialProvider = Provider.of<SocialProvider>(context);
return FutureBuilder<bool>(
future: socialProvider.loadCurrentLogged(),
builder: (context, snapshot){
if(!snapshot.hasData) {
return
Column(
children: <Widget>[
Row(
children: <Widget>[
Consumer<SocialProvider>(
builder: (context, socialProvider, _) =>
Container(
child: new RaisedButton(
onPressed: () {
if (snapshot.data != true) {
//Do something here.
} else { // } //switch end
}
),
),
),
),
],
),
],
);
} else {return
Center(
child: CircularProgressIndicator()
);
}
},
);
}

这是ChangeNotifierProvider提供的未来;

Future<bool> loadCurrentLogged() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
bool currentlogged = prefs.getBool('currentlogged') ;
return currentlogged;
}

怎么了?

Doh!

if(!snapshot.hasData) 

应该是;

if(snapshot.hasData)

叹气。。。

最新更新