Flutter中TextButton绑定跳转函数报错,仅press:null可正常显示
问题解决
核心原因
你在body.dart里给DefaultButton加了const修饰,但传入的press是匿名函数() {...}。const构造函数要求所有参数必须是编译时常量,匿名函数不属于常量范畴,因此会导致press无法被识别。
修复方案
直接移除DefaultButton前的const关键字即可:
// 去掉const修饰符 DefaultButton( text: "ok", press: () { Navigator.pushNamed(context, LoginPage.routeName); }, ),
额外验证项
- 确认
LoginPage的路由名称已正确定义:class LoginPage extends StatelessWidget { static const String routeName = '/login'; // ... 其他代码 } - 确认在
MaterialApp中已注册该路由:MaterialApp( routes: { LoginPage.routeName: (context) => const LoginPage(), }, );
内容的提问来源于stack exchange,提问作者user22607545
相关产品推荐
相关产品推荐

