Flutter非可空String类型方法返回null报错及代码排查
错误排查与修复方案
错误核心位置
- 外层函数无有效返回:你写的
return ''是then回调函数的返回值,不属于外层_environment()函数的返回。外层函数执行完PackageInfo.fromPlatform().then(...)后直接结束,没有返回任何String类型值,Dart会默认返回null,这和你声明的非可空返回类型String冲突,触发了错误提示。 - 异步逻辑处理错误:
PackageInfo.fromPlatform()是异步方法,返回Future<PackageInfo>,用同步函数的写法根本无法获取异步结果并返回。
修复代码
需将函数改为异步函数,返回Future<String>来适配异步逻辑:
Future<String> _environment() async { PackageInfo packageInfo = await PackageInfo.fromPlatform(); switch (packageInfo.packageName) { case 'hbhbh': return ''; default: return ''; } }
注:由于获取PackageInfo本身是异步操作,无法通过同步函数实现该需求,必须使用异步函数处理。
内容的提问来源于stack exchange,提问作者1988
相关产品推荐
相关产品推荐

