颤振 BlocProvider 导航
flutter BlocProvider Navigation
假设我们使用以下代码导航到“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(),
);
},
),
);
为了将已经创建的 bloc 传递到后续屏幕,您可以使用 BlocProvider.value 您的代码在更改后将如下所示:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return BlocProvider.value(
value: BlocProvider.of<BlocA>(context),
child: PageB(),
);
},
),
);
PageB 现在应该可以检索 blocA。
假设我们使用以下代码导航到“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(),
);
},
),
);
为了将已经创建的 bloc 传递到后续屏幕,您可以使用 BlocProvider.value 您的代码在更改后将如下所示:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return BlocProvider.value(
value: BlocProvider.of<BlocA>(context),
child: PageB(),
);
},
),
);
PageB 现在应该可以检索 blocA。