flutter - 在 flutter 中从 Navigator.pushNamed 访问 block

标签 flutter flutter-bloc

我有一个像这样的路由:

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

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

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

最佳答案

1) 将 bloc 作为参数传递

您必须将您的 Bloc 作为导航器中的参数传递,如下所示。

Navigator.pushNamed(context, '/deletewidget',
                    arguments: bloc);

现在您必须在新页面中接受该 block ,如下所示。

class _DeleteWidgetState extends State<DeleteWidget> {
var bloc;
@override
Widget build(BuildContext context) {
bloc = ModalRoute.of(context).settings.arguments;

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

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

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

更多详情请查看 Flutter_bloc包。

关于flutter - 在 flutter 中从 Navigator.pushNamed 访问 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59936055/

相关文章:

dart - Flutter如何在抽屉导航内添加可扩展菜单项?

flutter - 我想知道用户是否已经对我的应用进行了评价?

dart - Flutter:从其他文件提供“映射到路线”选项

Flutter BLOC 状态更新但始终为空值

flutter - 如何在Flutter中使用flutter_bloc自动刷新上一页(第一页)

flutter - 如何使用 flutter bloc 通过使用 firestore 的依赖注入(inject)来处理错误 `The getter was called on null`

flutter - 无法将参数类型Future <bool>分配给参数类型 'bool'

flutter - 如何在应用内浏览器窗口中打开链接

android - Flutter 错误 : Each child must be laid out exactly once. 关于建筑布局

flutter - 如何在同名路由器小部件中使用多个 block