flutter - 在颤振中从 Navigator.pushNamed 访问 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;
注意:您必须在 build 方法中创建 bloc 变量并在 build 方法中分配 bloc 变量。
- 当您返回最后一个屏幕时,您将无法再访问 bloc。
2)您可以在父小部件中使用 bloc 提供程序,以便您也可以在新屏幕中访问您的 bloc。
有关更多详细信息,请查看Flutter_bloc包。
推荐阅读
- c# - System.ArgumentNullException:值不能为空。(参数“连接字符串”)
- python - 将堆栈的 pop() 值保存到新变量中
- r - R:来自column1的字符串匹配从column2的行中选择数据来创建column3?
- android - 测试期间在 2 台安卓设备上检测到的问题
- javascript - 如何使用由提示确定的值的变量运行 For 循环
- javascript - 具有多个可能参数的函数,在给定任何参数序列的情况下永远不会返回相同的值
- php - PHP - 按大小写单词拆分数组
- operating-system - 如何将虚拟地址转换为物理地址?
- javascript - 像 JS 中的速度计一样动画图像箭头
- laravel - 查找 laravel 项目的 VUE_APP_API_BASE_URL 的确切值