I have designed with 3 bottom navigation taps i.e, dashboard, home, settings. I'm on the home screen due to some reason network issue. so navigate to the dashboard screen. the app shows a message like no internet connection Tap to Retry. Click on Tap to Retry the dashboard screen is connected and it works fine. then go for the home page still shown an error message widget.
when Internet connectivity comes back page it's not refreshing is it possible to do it this way i tried with bellow attach sample code:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final Connectivity connectivity=Connectivity();
return MultiBlocProvider(
providers: [
BlocProvider(
create: (context) => InternetCubit(connectivity: connectivity)),
],
child: MaterialApp(home:BottomNavScreen())
);
} }
BottomNavScreen build
@override
Widget build(BuildContext context) {
Repository repository =Repository(networkService: NetworkService());
return MultiBlocProvider(
providers: [
BlocProvider(
create: (BuildContext context) => DashCubit(
repository: repository,
//todosCubit: getOtpCubit,
)),
BlocProvider(
create: (BuildContext context) => HomeCubit(
repository: repository,
//todosCubit: getOtpCubit,
)),
],
child:
BlocBuilder<InternetCubit, InternetState>(
builder: (context, state) {
return Scaffold(
body:Center(
child: PersistentTabView(
context,
controller: _controller,
screens: _buildScreens(),
items: _navBarsItems(themeData),
),
),
)
,
);
},
),
);
}
Homescreen
@override
Widget build(BuildContext context) {
return
BlocListener<InternetCubit, InternetState>(
listener: (context, state) {
if (state is InternetDisconnected ) {
Scaffold.of(context).showSnackBar(SnackBar(
content: Text('InternetDisconnected'),
backgroundColor: Colors.red,
));
}
},
child: Scaffold(
body:
BlocConsumer<HomeCubit, HomeState>(
listener: (context, state) {
},
builder: (context, state) {
if (state is ErrorState) {
return Container(
height: double.infinity,
child: ErrorTxt(
message: '${error}\n\nTap to Retry.',
ontap: _loadAlbums,
),
);
}
else if (state is HomeLoaded) {
return
Container(
);
}
},
)
),
);
}
how do fix this issue please help me I struck this point
It works inside internet state connectivity to load the widgets.i tried with bellow referenced link https://github.com/TheWCKD/blocFromZeroToHero/tree/master/%237%20- %20BLoC%20Communication
BlocBuilder<InternetCubit, InternetState>(
builder: (context, state) {
if (state is InternetConnected ) {
return buildBlocConsumer();
}
else if (state is InternetDisconnected) {
return ErrorTxt(
message: 'Check Network Connection \n\n Tap to Retry ',
ontap: _loadAlbums,
);
}
return buildBlocConsumer();
is it any alternate answer?