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

旧版非空安全Flutter中Navigator.push()报错(user未定义)求助

问题解决:The getter 'user' isn't defined for the class '_CreatePageState'

错误信息

Error: The getter 'user' isn't defined for the class '_CreatePageState'.
- '_CreatePageState' is from 'package:insta_clone2_start/create_page.dart'('lib/create_page.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'user'.
  context, MaterialPageRoute(builder:(context) => HomePage(user)),
                                                           ^^^^

中文说明:错误提示明确指出,_CreatePageState类中不存在名为user的属性或getter方法,直接调用user会报错。

环境(非空安全)

environment:
 sdk: ">=2.7.0 <3.0.0"

相关代码片段

HomePage 代码

class HomePage extends StatelessWidget {
 final FirebaseUser user;

 HomePage(this.user);
}

CreatePage(StatefulWidget 定义部分)

class CreatePage extends StatefulWidget {
final FirebaseUser user;
CreatePage(this.user);

@override
_CreatePageState createState() => _CreatePageState();
}

CreatePage(State类中的跳转代码)

Navigator.push(
  context, MaterialPageRoute(builder:(context) => HomePage(user)),
);

问题原因

你将user参数定义在CreatePage这个StatefulWidget类中,但对应的状态类_CreatePageState无法直接访问父Widget的属性——Flutter规定,状态类必须通过内置的widget属性来访问所属StatefulWidget的成员变量。

解决办法

把跳转代码里的user替换为widget.user,修改后代码如下:

Navigator.push(
  context, MaterialPageRoute(builder:(context) => HomePage(widget.user)),
);

修改后,_CreatePageState就能正确获取到CreatePage中传入的user对象,顺利传递给HomePage。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:01:10