推送路由之间的 Flutter 参数持久性
Flutter argument persistence between pushed routes
所以我正处于我正在做的下一个应用程序的十字路口。我有 4 条路线,每条路线都添加了一个新参数,这些参数将在最终屏幕上捆绑在一起。
假设有四条路线,我调用了这三个函数(从路线 1 开始)
Navigator.pushNamed(context, 'route2', arguments: <String, String>{'foo': 'bar'});
Navigator.pushNamed(context, 'route3', arguments: <String, String>{'fizz': 'buzz'});
Navigator.pushNamed(context, 'route4', arguments: <String, String>{'mumbo': 'jumbo'});
我可以访问最终路由中的所有参数吗?我可以访问 'foot'、'fizz' 和 'mumbo'
AFAIK,您必须使用小部件的上下文在路由的小部件中提取路由的参数,例如
final args = ModalRoute.of(context).settings.arguments;
因此,您为其定义参数的参数之外的路由参数将无法访问这些参数。例如,route3
将无法使用为 route1
.
定义的参数 foo
为了回答您的问题,您将无法访问最终路由中的所有这些参数,因为这些参数不是为该最终路由定义的。您可能希望为此使用状态管理。
所以我正处于我正在做的下一个应用程序的十字路口。我有 4 条路线,每条路线都添加了一个新参数,这些参数将在最终屏幕上捆绑在一起。
假设有四条路线,我调用了这三个函数(从路线 1 开始)
Navigator.pushNamed(context, 'route2', arguments: <String, String>{'foo': 'bar'});
Navigator.pushNamed(context, 'route3', arguments: <String, String>{'fizz': 'buzz'});
Navigator.pushNamed(context, 'route4', arguments: <String, String>{'mumbo': 'jumbo'});
我可以访问最终路由中的所有参数吗?我可以访问 'foot'、'fizz' 和 'mumbo'
AFAIK,您必须使用小部件的上下文在路由的小部件中提取路由的参数,例如
final args = ModalRoute.of(context).settings.arguments;
因此,您为其定义参数的参数之外的路由参数将无法访问这些参数。例如,route3
将无法使用为 route1
.
foo
为了回答您的问题,您将无法访问最终路由中的所有这些参数,因为这些参数不是为该最终路由定义的。您可能希望为此使用状态管理。