Skip to content
This repository was archived by the owner on May 12, 2024. It is now read-only.
This repository was archived by the owner on May 12, 2024. It is now read-only.

_showMessage of EzGlobalMessageWrapper did not provide context for Scaffold #21

@sinhphan

Description

@sinhphan
 class EzGlobalMessageWrapper extends StatefulWidget {
   final Widget child;
 
   EzGlobalMessageWrapper(this.child);
   @override
   _EzGlobalMessageWrapperState createState() = _EzGlobalMessageWrapperState();
 }
 
 class _EzGlobalMessageWrapperState extends State<EzGlobalMessageWrapper {
   @override
   void initState() {
     super.initState();
     EzBlocProvider.of<EzGlobalBloc(context)
         .get<EzMessageBloc(EzMessageBloc)
         .messageStream
         .listen((msg) {
       if (msg != null) {
         _showMessage(msg);
       }
     });
   }
 
   @override
   Widget build(BuildContext context) {
     return widget.child;
   }
  void _showMessage(EzMessage message) {
     Color color = Colors.grey;
 
     switch (message.type) {
       case EzMessageType.SUCCESS:
         if (EzSettings.app() != null) {
           if (StringUtils.isNotNullOrEmpty(
               EzSettings.app()[EzSettingsKeys.KEY_MSG_SUCCESS_COLOR])) {
             color =
                 Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_SUCCESS_COLOR]);
           } else {
             color = Colors.green;
           }
         } else {
           color = Colors.green;
         }
         break;
       case EzMessageType.INFO:
         if (EzSettings.app() != null) {
           if (StringUtils.isNotNullOrEmpty(
               EzSettings.app()[EzSettingsKeys.KEY_MSG_INFO_COLOR])) {
             color = Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_INFO_COLOR]);
           } else {
             color = Colors.blue;
           }
         } else {
           color = Colors.blue;
         }
         break;
       case EzMessageType.WARNING:
         if (EzSettings.app() != null) {
           if (StringUtils.isNotNullOrEmpty(
               EzSettings.app()[EzSettingsKeys.KEY_MSG_WARNING_COLOR])) {
             color =
                 Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_WARNING_COLOR]);
           } else {
             color = Colors.orange;
           }
         } else {
           color = Colors.orange;
         }
         break;
       case EzMessageType.ERROR:
         if (EzSettings.app() != null) {
           if (StringUtils.isNotNullOrEmpty(
               EzSettings.app()[EzSettingsKeys.KEY_MSG_ERROR_COLOR])) {
             color = Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_ERROR_COLOR]);
           } else {
             color = Colors.red;
           }
         } else {
           color = Colors.red;
         }
         break;
       case EzMessageType.DEBUG:
         if (EzSettings.app() != null) {
           if (StringUtils.isNotNullOrEmpty(
               EzSettings.app()[EzSettingsKeys.KEY_MSG_DEBUG_COLOR])) {
             color = Color(EzSettings.app()[EzSettingsKeys.KEY_MSG_DEBUG_COLOR]);
           } else {
             color = Colors.grey;
           }
         } else {
           color = Colors.grey;
         }
         break;
       default:
     }
 
     SnackBar bar =
         SnackBar(content: Text(message.text), backgroundColor: color);
 
     Scaffold.of(context)
       ..hideCurrentSnackBar()
       ..showSnackBar(bar);
     message.displayed = true;
   }
 }

when I show message. I got an error.

E/flutter ( 4388): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: 'package:flutter/src/material/scaffold.dart': Failed assertion: line 1447 pos 12: 'context != null': is not true.
�[38;5;244mE/flutter ( 4388): #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)�[39;49m
�[38;5;244mE/flutter ( 4388): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)�[39;49m
�[38;5;244mE/flutter ( 4388): #2 Scaffold.of�[39;49m
�[38;5;248mE/flutter ( 4388): #3 _EzGlobalMessageWrapperState._showMessage�[39;49m
�[38;5;248mE/flutter ( 4388): #4 _EzGlobalMessageWrapperState.initState.�[39;49m
�[38;5;244mE/flutter ( 4388): #5 _rootRunUnary (dart:async/zone.dart:1198:47)�[39;49m
�[38;5;244mE/flutter ( 4388): #6 _CustomZone.runUnary (dart:async/zone.dart:1100:19)�[39;49m
�[38;5;244mE/flutter ( 4388): #7 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)�[39;49m
�[38;5;244mE/flutter ( 4388): #8 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)�[39;49m
�[38;5;244mE/flutter ( 4388): #9 _DelayedData.perform (dart:async/stream_impl.dart:611:14)�[39;49m
�[38;5;244mE/flutter ( 4388): #10 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11)�[39;49m
�[38;5;244mE/flutter ( 4388): #11 _PendingEvents.schedule. (dart:async/stream_impl.dart:687:7)�[39;49m
�[38;5;244mE/flutter ( 4388): #12 _rootRun (dart:async/zone.dart:1182:47)�[39;49m
�[38;5;244mE/flutter ( 4388): #13 _CustomZone.run (dart:async/zone.dart:1093:19)�[39;49m
�[38;5;244mE/flutter ( 4388): #14 _CustomZone.runGuarded (dart:async/zone.dart:997:7)�[39;49m
�[38;5;244mE/flutter ( 4388): #15 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1037:23)�[39;49m
�[38;5;244mE/flutter ( 4388): #16 _rootRun (dart:async/zone.dart:1190:13)�[39;49m
�[38;5;244mE/flutter ( 4388): #17 _CustomZone.run (dart:async/zone.dart:1093:19)�[39;49m
�[38;5;244mE/flutter ( 4388): #18 _CustomZone.runGuarded (dart:async/zone.dart:997:7)�[39;49m
�[38;5;244mE/flutter ( 4388): #19 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1037:23)�[39;49m
�[38;5;244mE/flutter ( 4388): #20 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)�[39;49m
�[38;5;244mE/flutter ( 4388): #21 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)�[39;49m
E/flutter ( 4388):

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions