You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart代码类型兼容问题求助:ConnectivityResult与List不匹配

解决connectivity_plus包的类型兼容错误

问题原因

connectivity_plus包的checkConnectivity()方法在新版本中返回值类型已从单个ConnectivityResult改为List<ConnectivityResult>(支持设备同时存在多种网络连接的场景),而你的代码仍将其当作单个值进行比较,导致类型不兼容错误。

修复方案

修改网络状态判断逻辑,针对列表类型做包含性检查:

方法一:使用contains方法

将原判断条件替换为:

if (!connectionResult.contains(ConnectivityResult.mobile) && !connectionResult.contains(ConnectivityResult.wifi))

方法二:使用any方法(更简洁)

用any方法简化判断逻辑:

if (!connectionResult.any((result) => result == ConnectivityResult.mobile || result == ConnectivityResult.wifi))

修改后的完整代码

import 'package:connectivity_plus/connectivity_plus.dart';                                        
import 'package:flutter/material.dart';                                                           
                                                                                                  
class CommonMethods 
{                                                                             
  checkConnectivity(BuildContext context) async 
  {                                                 
    var connectionResult = await Connectivity().checkConnectivity();  
                        
    if (!connectionResult.any((result) => result == ConnectivityResult.mobile || result == ConnectivityResult.wifi))  
    {                                           
      if (!context.mounted) return;                                                          
      displaySnackBar("your Internet is not Available. Check your connection. Try Again.", context);                                                                                                                                                                         
    }                                                                                             
  }                                                                                               
                                                                                                  
  displaySnackBar(String messageText, BuildContext context) {                                     
    var snackBar = SnackBar(content: Text(messageText));                                          
    ScaffoldMessenger.of(context).showSnackBar(snackBar);                                         
  }                                                                                               
}       

内容的提问来源于stack exchange,提问作者Sahr Josiah-Faeduwor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:22:35