参数类型“String”无法分配给参数类型“Route<Object?>”.dart(argument_type_not_assignable)

Moh*_*ana 3 dart flutter

单击按钮时,我试图获取要导航到的屏幕名称(在自定义类中)。

class myButton extends StatelessWidget {
  String button_txt = '';
  String nextPage = '';
  double height_ = 39;

  myButton(button_txt) {
    this.button_txt = button_txt;
    this.nextPage = nextPage;
  }
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        Navigator.pushReplacement(context, '/$nextPage');
      },
Run Code Online (Sandbox Code Playgroud)

小智 5

如果你想使用命名路由,你应该像这样使用它:

Navigator.pushReplacementNamed(context, 'nextPage');
Run Code Online (Sandbox Code Playgroud)

但如果您不想使用命名路线,则可以采用不同的导航方式:

  Navigator.pushReplacement(
    context,
    MaterialPageRoute(
      builder: (context) {
        return routewidget;
      },
    ),
  );
Run Code Online (Sandbox Code Playgroud)