Я получаю ноль при вызове метода. Я даже пытаюсь отладить, но я остановился на getNotification()
, но не могу понять, почему я получаю нулевое значение. После отладки я полностью теряюсь, чего не хватает, ниже приведен код и скриншот устройства. Может быть, кто-то может помочь мне за исключением нулевой точки
Домашняя страница
child: BlocListener<NotificationBloc, NotificationState>(
listener: (context, state) {
},
child: BlocBuilder<NotificationBloc, NotificationState>(
builder: (context, state) {
if(state is InitialNotificationState) {
return buildLoading();
}
else if (state is NotificationLoadedState) {
return NotificationIconBuild(state.notification);
}
else if(state is NotificationErrorState) {
return buildErrorUi(state.message1);
}
},
Notification_blo c
class NotificationBloc extends Bloc<NotificationEvent, NotificationState> {
NotificationsRepositoryImp notificationsRepository;
NotificationBloc({@required this.notificationsRepository});
@override
NotificationState get initialState => InitialNotificationState();
@override
Stream<NotificationState> mapEventToState(
NotificationEvent event,
) async* {
if(event is FetchNotificationEvent){
try {
NotificationModle notification = await notificationsRepository.getNotifications();
yield NotificationLoadedState(notification: notification);
}
catch (e) {
yield NotificationErrorState(message1: e.toString());
}
}
NotificationRepository
class NotificationsRepositoryImp {
NotificationModle notification;
@override
Future<NotificationModle> getNotifications() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
notification.fajr = await prefs.getBool('n_fajr') ?? false;
notification.duhur = await prefs.getBool('n_duhur') ?? false;
notification.asr = await prefs.getBool('n_asr') ?? false;
notification.magrib = await prefs.getBool('n_magrib') ?? false;
notification.esha = await prefs.getBool('n_esha') ?? false;
return notification;
}
Это проблема в Blocbuilder, потому что на домашней странице я добавил два блока Builder.