我有一个要在无状态窗口小部件中调用的Async方法。运行时会显示
动态未来不是小部件的子类型
然后在几秒钟后显示结果。如何停止? 这是我的方法
var onvalue = await Firestore.instance
.collection("userdata")
.document(user.uid)
.get();
if (onvalue.exists) {
return Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => mainhomepage()),);
}
else {
print("register");
return Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => Register()),);
}
}
还有我的身体
Widget build(BuildContext context) {
var user = Provider.of<User>(context);
//return either home or authenticate
return MaterialApp (
home: user != null?check(user)//Calling the function
:app()
);
}
答案 0 :(得分:1)
您可以使用Futurebuilder。
Widget build(BuildContext context) {
var user = Provider.of<User>(context);
//return either home or authenticate
return MaterialApp (
home: user != null?
FutureBuilder(
future: check(user),
builder: (_, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return Text(snapshot.data);
} else {
return CircularProgressIndicator();
}
},
)
:app()
);
}