【发布时间】:2021-10-16 20:08:13
【问题描述】:
我将bool 值存储在共享首选项中,并使用future<bool> 文件中的future<bool> 方法获取bool 数据。
我需要使用未来的构建器来处理这个功能,这就是我遇到错误的地方:
Argument type 'Future<bool?> Function()' can't be assigned to the parameter type 'Future<bool>'
这是我的代码:
Authenticate extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold
body: FutureBuilder<bool> (
future: getBoolValuesSF,
builder: (BuildContext context, AsyncSnapshot<bool?> snapshot) {
if (snapshot.data == false) {
return SignInPage();
} else {
return _handleAuth();
}
},
), // FutureBuilder
); // Scaffold
}
Widget _handleAuth() {
return StreamBuilder<User?>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (BuildContext context, snapshot) {
return (!snapshot.hasData) ? SignInPage() : FirstNavigation();
},
); // StreamBuilder
}
Future<bool?> getBoolValues SF() async {
SharedPreferences loginCheck = await SharedPreferences.getInstance();
return loginCheck.getBool("state");
}
}
【问题讨论】: