Flutter报错Expected a value of type 'Widget' but got type 'Null' 问题排查
问题根因
- 你使用的路由构建回调要求返回
Widget类型的对象,当前用大括号包裹的函数体没有显式加return关键字返回EditAccountRoot实例,Dart中这类无显式return的函数默认返回null,和要求的Widget类型不匹配,因此抛出报错。
两种修复方案
方案1:显式添加return语句
kEditAccountPage: (context, state) { Map<String, dynamic> userData = state.data; return EditAccountRoot(userData: userData); },
方案2:改用箭头函数简写,自动返回表达式结果
kEditAccountPage: (context, state) => EditAccountRoot(userData: state.data as Map<String, dynamic>),
补充规则:Dart中只有箭头函数
=> 表达式会自动将表达式的结果作为返回值返回,用{}包裹的函数体必须手动写return指定返回值,无return时默认返回null。
内容的提问来源于stack exchange,提问作者JLarana
相关产品推荐
相关产品推荐

