Flutter 颤振:在无状态小部件中调用异步方法
我想在无状态小部件中调用一个异步方法。运行时,它会说 Future dynamic不是小部件的子类型 然后在几秒钟后显示结果。我怎样才能阻止它? 这是我的方法Flutter 颤振:在无状态小部件中调用异步方法,flutter,dart,Flutter,Dart,我想在无状态小部件中调用一个异步方法。运行时,它会说 Future dynamic不是小部件的子类型 然后在几秒钟后显示结果。我怎样才能阻止它? 这是我的方法 var onvalue = await Firestore.instance .collection("userdata") .document(user.uid) .get(); if (onvalue.exists) { return Navigator.pu
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()
);
}
小部件构建(构建上下文){
var user=Provider.of(上下文);
//返回主页或进行身份验证
返回材料PP(
home:user!=null?检查(user)//调用函数
:app()
);
}
您可以使用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()
);
}
小部件构建(构建上下文){
var user=Provider.of(上下文);
//返回主页或进行身份验证
返回材料PP(
主页:用户!=null?
未来建设者(
未来:检查(用户),
构建器:(\uux,快照){
if(snapshot.connectionState==connectionState.done){
返回文本(snapshot.data);
}否则{
返回循环ProgressIndicator();
}
},
)
:app()
);
}
您可以将您的代码发布到@D.Go.add code您尝试了什么。@T.TSage请检查。@VirenVVarasadiya请再次检查