📜  Navigator.pushReplacementNamed 参数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:05.576000             🧑  作者: Mango

Navigator.pushReplacementNamed 参数

当你想要从一个页面跳转到下一个页面时,并且不想在上一个页面返回时回到该页面时,你可以使用 Navigator.pushReplacementNamed 函数。这个函数可以使得你在跳转到下一个页面的同时将此前的路由记录覆盖掉,即上一个页面从路由记录中删除。这样,当你回退时,你无法回到上一个页面。

##参数

routeName

你需要跳转到的路由路径名。

arguments

你需要传给下一个页面的参数。

例子
Navigator.pushReplacementNamed(context, '/home', arguments: { 'name': 'John Doe' });

在这个例子中,将从上文中的 context 所指向的路由页面跳转到 '/home' 页面,并将一个对象 { 'name': 'John Doe' } 作为参数传递给新页面。

需要注意的是,'home' 页面必须在 MaterialAppNavigator 等所处的上下文范围内进行定义。具体而言,你需要在你的 MaterialApp 中提供一个 routes 参数来显式地将其引入应用程序:

MaterialApp(
  routes: {
    '/home': (context) => HomePage(),
  },
  ...
);

这样,当你通过 Navigator.pushReplacementNamed 跳转到含有 '/home' 路由的页面时,Flutter 就会匹配到对应的 HomePage()

##总结

使用 Navigator.pushReplacementNamed 函数可以实现将当前页面从路由记录中删除,从而防止回到上一个页面。在使用该函数时,需要注意新页面必须在跳转前通过 routes 参数进行显式声明。