Flutter中Navigator.push()报错:位置参数不足问题求解
问题原因
你的HomePage类构造函数要求必须传入一个FirebaseUser类型的位置参数,但在跳转代码中调用HomePage()时没有传递该参数,导致参数数量不匹配,触发报错。
解决方案
方案1:传入必要的参数
如果你需要在HomePage中使用user对象,确保跳转时传入已有的FirebaseUser实例:
Navigator.push( context, MaterialPageRoute(builder:(context) => HomePage(yourUserInstance)), );
注:yourUserInstance是你当前页面中已获取到的FirebaseUser对象
方案2:修改HomePage构造函数为可选参数
如果HomePage不需要强制依赖user参数,可调整构造函数为可选参数:
方式A:可选位置参数
class HomePage extends StatelessWidget { final FirebaseUser? user; HomePage([this.user]); // 后续使用user时需处理空值,例如 user?.displayName }
方式B:命名可选参数
class HomePage extends StatelessWidget { final FirebaseUser? user; HomePage({this.user}); // 跳转时可传可不传:HomePage(user: yourUserInstance) 或 HomePage() }
内容的提问来源于stack exchange,提问作者Yooni
相关产品推荐
相关产品推荐

