Flutter项目从2.10.0升级至最新版时Future.delayed报错求助
解决Flutter升级后Future.delayed报错:"The method 'delayed' isn't defined for the type 'Function'"
问题根源
你的代码中存在未闭合的setState代码块,导致语法结构混乱,编译器将后续的Future.delayed错误解析为某个Function的成员,从而触发该报错。
修正后的完整代码
void initState() { super.initState(); WidgetsBinding.instance?.addPostFrameCallback((_) async { setState(() { _applicationStatus = "Getting start..."; }); // Application Logo _prefs = await SharedPreferences.getInstance(); Object? applicationLogo = _prefs.get(SPConstants.appLogo); setState(() { _applicationLogo = applicationLogo != null ? ImageSourceConverter.converter(applicationLogo.toString()) : null; }); // 补上缺失的闭合括号 setState(() { _applicationStatus = "Getting configuration..."; }); await _loadingConfig(context); Future.delayed(const Duration(seconds: 1), () async { setState(() { _applicationStatus = "Getting profile..."; }); await _validateLogin(context); await Navigator.of(context).pushNamedAndRemoveUntil( LanguageScreen.routeName, (route) => false); }); }); }
补充说明
从Flutter 2.10.0升级到新版本后,Dart的语法检查机制更加严格。此前可能未被检测到的未闭合代码块,现在会直接导致语法解析错误,进而引发这类看似与Future.delayed本身相关的报错,但本质是代码结构的语法问题。
内容的提问来源于stack exchange,提问作者Ropon Pov
相关产品推荐
相关产品推荐

