[英]Flutter: Call Async methods in stateless widgets
I have a Async method that I want to call in a stateless widget.我有一个要在无状态小部件中调用的异步方法。 While running it it says运行时它说
Future dynamic Is not a sub type of widget未来动态 不是小部件的子类型
And then it shows the result after some seconds.How can I stop it?然后它会在几秒钟后显示结果。我怎样才能停止它? This is my method这是我的方法
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()),);
}
}
And my main body还有我的主体
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()
);
}
You can use Futurebuilder.您可以使用 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()
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.