如何解决Flutter Future in Future 并设置 state()
在有状态类 initState() 方法中,我正在调用一个函数来检查互联网连接(不是侦听器)。 然后在同一个类的 FutureBuilder 中,我给出了一个调用服务器的未来。现在的问题是,当我从其他页面导航回同一页面时,互联网连接关闭,然后我遇到以下问题
CheckConncection 函数:
Future<bool> internetChecker(BuildContext context) async{
if( await DataConnectionChecker().hasConnection){
return true;
}
else{
InternetStatus = "You are disconnected to the Internet. ";
contentmessage = "Please check your internet connection";
showDialogBox(InternetStatus,contentmessage,context);
return false;
}
}
showDialog:
Widget showDialogBox(String err,String content,BuildContext context) {
showDialog(
barrierDismissible: false,context: context,builder: (BuildContext context) {
return AlertDialog(
title: new Text(err),content: new Text(content),actions: <Widget>[
new FlatButton(
onPressed: () async {
Navigator.of(context).pop();
if(await internetChecker(context)==true){
setState(() {
});
}
else{
showDialogBox('err','retry',context);
}
},child: new Text("Try Again"))
]
);
}
);
}
请注意,我在 internetreconnection 上调用 setState()。但这仅在 initstate() 期间才有效。
现在,我尝试在我的 Future API 请求中检查相同的内容
Future<List<Map<String,dynamic>>> getMultipleData(String token) async {
if(await DataConnectionChecker().hasConnection){
try {
...
} on SocketException catch (e) {
print(e);
}
}
else{
showDialogBox('err','no internet',context);
}
}
以前我遇到了以下异常,但现在不是,w=而且我还没有更改代码。那还能再来吗
[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。