我有一个异步方法,我想在无状态小部件中调用它。运行时它说
Future Dynamic 不是 widget 的子类型
然后几秒钟后显示结果。我怎样才能停止它?这是我的方法
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()),);
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的主体
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()
);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用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()
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3633 次 |
| 最近记录: |