在 flutter 中从 Navigator.pushNamed 访问 bloc
access bloc from Navigator.pushNamed in flutter
我有一个 routing
这样的:
routes: {
'/': (context) => MainPage(),
'/othe_page': (context) => OthePage(),
},
Navigator.pushNamed(context, '/othe_page');
如何将 bloc 传递给 OthePage
小部件?
1) 传递 bloc 作为参数
您必须在导航器中将您的集团作为参数传递,如下所示。
Navigator.pushNamed(context, '/deletewidget',
arguments: bloc);
现在您必须在新页面中接受该集团,如下所示。
class _DeleteWidgetState extends State<DeleteWidget> {
var bloc;
@override
Widget build(BuildContext context) {
bloc = ModalRoute.of(context).settings.arguments;
注意:您必须在构建方法之外创建 bloc 变量并在构建方法中分配 bloc 变量。
-当您 return 到最后一个屏幕时,您将无法再访问 bloc。
2) 您可以在父窗口小部件中使用 bloc 提供程序,这样您也可以在新屏幕中访问您的 bloc。
有关更多详细信息,请查看 Flutter_bloc 包。
我有一个 routing
这样的:
routes: {
'/': (context) => MainPage(),
'/othe_page': (context) => OthePage(),
},
Navigator.pushNamed(context, '/othe_page');
如何将 bloc 传递给 OthePage
小部件?
1) 传递 bloc 作为参数
您必须在导航器中将您的集团作为参数传递,如下所示。
Navigator.pushNamed(context, '/deletewidget',
arguments: bloc);
现在您必须在新页面中接受该集团,如下所示。
class _DeleteWidgetState extends State<DeleteWidget> {
var bloc;
@override
Widget build(BuildContext context) {
bloc = ModalRoute.of(context).settings.arguments;
注意:您必须在构建方法之外创建 bloc 变量并在构建方法中分配 bloc 变量。
-当您 return 到最后一个屏幕时,您将无法再访问 bloc。
2) 您可以在父窗口小部件中使用 bloc 提供程序,这样您也可以在新屏幕中访问您的 bloc。
有关更多详细信息,请查看 Flutter_bloc 包。