I new a bloc/cubit pattern, before I used provider, getx and I want to ask something.
This application have nearly 40 pages and I want to use bloc just 10 pages and close bloc instance when is last page is closed.
Example page 1, I initialize bloc, and it is initialized on the other pages (2, 3, 4...9) will use same bloc/cubit instance and 10 page close bloc instance close
This is router class and cubit initialize here
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
final RegisterCubit _registerCubit = RegisterCubit();
switch (settings.name) {
case welcomeRoute:
return MaterialPageRoute(builder: (_) => WelcomePage());
case loginRoute:
return MaterialPageRoute(builder: (_) => LoginPage());
case homeRoute:
return MaterialPageRoute(builder: (_) => HomePage());
case referanceCodePreview:
return MaterialPageRoute(
builder: (_) => BlocProvider.value(
value: _registerCubit,
child: ReferancaCodePreviewView(),
));
case registerOne:
return MaterialPageRoute(
builder: (_) => BlocProvider.value(
value: _registerCubit,
child: RegisterPageOne(),
));
case registerTwo:
return MaterialPageRoute(
builder: (_) => BlocProvider.value(
value: _registerCubit,
child: RegisterPageOTwo(),
));
case registerThree:
return MaterialPageRoute(
builder: (_) => BlocProvider.value(
value: _registerCubit,
child: RegisterPageOThree(),
));
case registerFour:
return MaterialPageRoute(
builder: (_) => BlocProvider.value(
value: _registerCubit,
child: RegisterPageFour(),
));
case registerFive:
return MaterialPageRoute(
builder: (a) => BlocProvider.value(
value: _registerCubit,
child: RegisterPageFive(),
));
This page four and this page not listen to _registerCubit
class RegisterPageFour extends StatefulWidget {
RegisterPageFour({Key? key}) : super(key: key);
@override
State<RegisterPageFour> createState() => _RegisterPageFourState();
}
class _RegisterPageFourState extends State<RegisterPageFour> with
ImageSelectPicker {
@override
Widget build(BuildContext context) {
return BlocConsumer<RegisterCubit, RegisterState>(
listener: (contex, state) {},
builder: (context, state) {
return buildScaffold(context, state);
},
);
}
Navigation PageFour
CustomButton(
buttonWidth: MediaQuery.of(context).size.width,
onPress: () => Navigator.pushNamed(context, "/registerFour"),
title: "İleri"),
Can you help me this issue ?