gpt4 book ai didi

flutter - 相等运算符 `==` 在使用 data_connection_checker 包时调用无关类型的引用

转载 作者:行者123 更新时间:2023-12-04 14:28:06 25 4
gpt4 key购买 nike

要检查互联网连接,我正在使用 data_connection_checker 包,但似乎我不知道如何使用它。
我正在使用以下代码通过调用 initstate 来检查互联网连接

 Widget _showDialog(String err,String content ,BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: new Text(err),
content: new Text(content),
actions: <Widget>[
new FlatButton(
onPressed: () {
Navigator.of(context).pop();
setState(() {

});
},
child: new Text("Try Again"))
]
);
}
);
}

Future checkConnection(BuildContext context) async{
listener = DataConnectionChecker().onStatusChange.listen((status) {
switch (status){
case DataConnectionStatus.connected:
return "DataConnectionState.connected";
break;
case DataConnectionStatus.disconnected:
InternetStatus = "You are disconnected to the Internet. ";
contentmessage = "Please check your internet connection";
_showDialog(InternetStatus,contentmessage,context);
break;
}
});
return await DataConnectionChecker().connectionStatus;
}

但我也在尝试检查 FutureBuilder 小部件中的互联网连接。我做了以下函数来调用检查
Future<bool> internetChecker(BuildContext context) async{
if( await DataConnectionChecker().hasConnection){
return true;
// Future<bool>.value(true);
}
else{
return false;
// Future<bool>.value(false);
}
}
但是 DataConnectionChecker().hasConnection 显示错误,直到我像上面一样使用 await 之前。
future builder :
builder:(BuildContext context, AsyncSnapshot snapshot) {
if(internetChecker(context) == true){
if(snapshot.hasData){
if(snapshot.data==null){
return _showDialog('Unexpected Error', 'Data was null', context);
}
else{
return SafeArea(...);
}
}
else{
return Center(child: Image.asset("assets/images/369.gif",fit: BoxFit.fill,));
}
}
else{
return _showDialog('No Internet Connection', 'Check your Internet Connection and Try Again!!', context);
}
}
),
}
我正在 FutureBuilder 的构建器中尝试所有这些。
现在,如果当我写“internetChecker(context) == true”时,它会告诉我这个
!!!!!!!!!!!!!!!!!! Equality operator '==' invocation with references of unrelated types.!!!!!!!!!!!!!!!
编辑:
此外,在调试期间的 internetchecker 函数中,我注意到它只是跳转 if else 条件并且不返回任何非真或假的东西。我不明白为什么。
请告诉我如何解决它或任何其他有效的方法来做到这一点。

最佳答案

您比较 2 个元素但类型不同。 Future < bool > 与 bool 的类型不同。
尝试

internetChecker(context).then((value){
value == true ? ...
});

关于flutter - 相等运算符 `==` 在使用 data_connection_checker 包时调用无关类型的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66624854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com