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

Flutter实现语言选择弹窗时出现builder参数必填及Utils未定义报错

报错1:The named parameter 'builder' is required, but there's no corresponding argument

该报错原因是Flutter新版本中showDialog方法已废弃child参数,改为必填的builder参数,修改后代码如下:

void _languageCheck() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();

  final firstRun = prefs.getBool("firstRunLanguage");
  (firstRun ?? false)
      ? () {}
      : await showDialog(
          barrierDismissible: false,
          context: context,
          // 替换原有child参数为builder
          builder: (context) => AlertDialog(content: LanguageDialog()),
        );
  await prefs.setBool('firstRunLanguage', true);
}

报错2:Undefined name 'Utils'

该报错是代码中调用的Utils类未被正确识别,按两种场景处理:

  • 若你已经单独定义了Utils类和getLanguagesList方法,只需在当前代码文件头部导入对应文件即可,示例导入格式:
    import '你的文件路径/utils.dart'; // 替换为Utils类所在的实际文件路径
    
  • 若你还未定义Utils类,需要先实现对应的工具类和方法,示例实现参考:
    class Utils {
      static List<Map<String, dynamic>> getLanguagesList(BuildContext context) {
        // 可自行替换为实际需要的语言配置
        return [
          {"code": "zh", "name": "简体中文"},
          {"code": "en", "name": "English"},
        ];
      }
    }
    

内容的提问来源于stack exchange,提问作者Rushika Pawar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:27:01