颤振 BlocProvider 导航
Posted
技术标签:
【中文标题】颤振 BlocProvider 导航【英文标题】:flutter BlocProvider Navigation 【发布时间】:2021-11-24 17:11:00 【问题描述】:假设我们使用以下代码导航到“PageA”:
Navigator.push(
context,
MaterialPageRoute(
builder: (context)
return BlocProvider(
create: (context) => BlocA(),
child: PageA(),
);
,
),
);
当“PageA”导航到“PageB”时。如何访问“BLocA”? 我尝试使用以下代码从“PageA”导航到“PageB”,但它崩溃了。
Navigator.push(
context,
MaterialPageRoute(
builder: (context)
return BlocProvider(
create: (context) => contxt.read<BlocA>(),
child: PageB(),
);
,
),
);
【问题讨论】:
【参考方案1】:为了将已经创建的块传递到后续屏幕,您可以使用BlocProvider.value 更改后您的代码将如下所示:
Navigator.push(
context,
MaterialPageRoute(
builder: (context)
return BlocProvider.value(
value: BlocProvider.of<BlocA>(context),
child: PageB(),
);
,
),
);
PageB 现在应该可以检索 blocA。
【讨论】:
BlocProvider 没有“值”命名属性 对不起,我的错,我已经更正了代码。以上是关于颤振 BlocProvider 导航的主要内容,如果未能解决你的问题,请参考以下文章
根据 Flutter 中的 Provider 值变化在屏幕之间导航
Flutter 中的 Bloc Provider 和 Normal Provider 有啥区别?
使用不包含 Bloc 类型的上下文调用 BlocProvider.of()