Flutter页面间传值跳转后显示null,附相关代码求修复方案
问题修复方案
1. 移除子页面嵌套的MaterialApp
你在AddBasicInfo页面的build方法中返回了新的MaterialApp,会生成独立的路由上下文,和应用根路由栈隔离,容易导致传值异常。直接将return MaterialApp()....修改为返回Scaffold组件即可,MaterialApp只需要在应用启动的根组件中声明一次。
2. State类中正确访问传入参数
MarriageInfo的State类访问父组件传入的参数时,必须添加widget.前缀,否则会读取不到值,示例代码如下:
class _MarriageInfoState extends State<MarriageInfo> { @override Widget build(BuildContext context) { // 正确调用方式:widget.参数名 return Scaffold( body: Center(child: Text(widget.passingValue)), ); } }
3. 如需传递data1数据,直接新增构造参数即可
如果你需要把页面1定义的data1数组也传递到目标页面,按照如下方式修改:
- 首先修改
MarriageInfo的构造参数:
class MarriageInfo extends StatefulWidget { final String passingValue; // 新增data1参数 final List<Map<String, dynamic>> data1; const MarriageInfo({ Key? key, required this.passingValue, required this.data1 }) : super(key: key); @override _MarriageInfoState createState() => _MarriageInfoState(); }
- 跳转时传入data1:
Navigator.push( context, MaterialPageRoute( builder: (context) => MarriageInfo( passingValue: passingValue, data1: data1, ), ), );
4. 修正代码语法错误
你贴出的代码中存在括号未闭合、多余大括号的语法问题,修复后确保inputName、_selectedGender、dobDate等变量已提前声明赋值,跳转前确认变量值不为空。
内容的提问来源于stack exchange,提问作者prushoth07
相关产品推荐
相关产品推荐

