首页 > 解决方案 > 在颤振中从 Navigator.pushNamed 访问 bloc

问题描述

我有一个routing这样的:

routes: {
    '/': (context) => MainPage(),
    '/othe_page': (context) => OthePage(),
},

Navigator.pushNamed(context, '/othe_page');

如何将 bloc 传递给OthePage小部件?

标签: flutterflutter-bloc

解决方案


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;

注意:您必须在 build 方法中创建 bloc 变量并在 build 方法中分配 bloc 变量。

- 当您返回最后一个屏幕时,您将无法再访问 bloc。

2)您可以在父小部件中使用 bloc 提供程序,以便您也可以在新屏幕中访问您的 bloc。

有关更多详细信息,请查看Flutter_bloc包。


推荐阅读