title: Flutter: I got this error > Failed assertion: line 447 pos 12: 'context != null': is not true
body: <p>I have a widget which is return an alertDialog, and according to the result of the http request, I show another alertDialog. Nut I got the below error:</p>
  <p>[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: 'package:flutter/src/widgets/localizations.dart': Failed assertion: line 447 pos 12: 'context != null': is not true.</p>
  <pre><code>
  
  import 'dart:io';
  
  import 'package:Zabatnee/common_app/provider/user_details_provider.dart';
  import 'package:flutter/material.dart';
  import 'package:provider/provider.dart';
  
  class ForgetPasswordDialog extends StatefulWidget {
    static const routeName = '/customeDialog';
    final String title,description;
    
  
    ForgetPasswordDialog({
      this.title, 
      this.description,
      });
  
    @override
    _ForgetPasswordDialogState createState() =&gt; _ForgetPasswordDialogState();
  }
  
  class _ForgetPasswordDialogState extends State&lt;ForgetPasswordDialog&gt; {
  final emailController = TextEditingController();
    var _isLoading = false;
  
  _showDialog(String title, String message) {
      showDialog(
        barrierDismissible: false,
        context: context,
        builder: (ctx) =&gt; WillPopScope(
          onWillPop: () async =&gt; false,
          child: new AlertDialog(
            elevation: 15,
            shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.all(Radius.circular(8))),
            title: Text(
              title,
              style: TextStyle(color: Colors.white),
            ),
            content: Text(
              message,
              style: TextStyle(color: Colors.white),
            ),
            backgroundColor: Theme.of(context).primaryColor,
            actions: &lt;Widget&gt;[
              FlatButton(
                child: Text(
                  'OK',
                  style: TextStyle(color: Theme.of(context).accentColor),
                ),
                onPressed: () {
                  Navigator.of(context).pop();
                  setState(
                    () {
                      _isLoading = false;
                    },
                  );
                },
              )
            ],
          ),
        ),
      );
    }
  
  
  
    Future&lt;void&gt; _forgetPassword (String email) async {
  
      try{
        if(mounted)
       setState(() {
         _isLoading = true;
       }); 
      await Provider.of&lt;UserDetailsProvider&gt;(context, listen: false).forgetPassword(email);
        print('code are sent via email');
         _showDialog('Conguratulations', 'code send successfully');
      } on HttpException catch (error) {
        _showDialog('Authentication Failed', error.message);
      } on SocketException catch (_) {
        _showDialog('An error occured',
            'please check your internet connection and try again later');
      } catch (error) {
        _showDialog('Authentication Failed',
            'Something went wrong, please try again later');
      }
      if(mounted)
      setState(() {
        _isLoading = false;
      });
    }
    @override
    void dispose() {
      emailController.dispose();
      super.dispose();
    }
  
    @override
    Widget build(BuildContext context) {
      return Dialog(
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(16)
        ),
        elevation: 8,
        backgroundColor: Theme.of(context).accentColor,
        child: dialogContent(context),
      );
    }
  
    dialogContent(BuildContext context){
      
  
      return Container(
        padding: EdgeInsets.only(
          top: 50,
          right: 16,
          left: 16,
          bottom: 16,
        ),
        margin: EdgeInsets.all(8),
        width: double.infinity,
        decoration: BoxDecoration(
          color: Theme.of(context).accentColor,
          shape: BoxShape.rectangle,
          borderRadius: BorderRadius.circular(17),
          boxShadow: [
            BoxShadow(
              color: Colors.black87,
              blurRadius: 10.0,
              offset: Offset(0.0,10.0),
            )
          ]
        ),
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: &lt;Widget&gt;[
            Text(
              widget.title,
              style: TextStyle(
                fontSize: 24,
              ),
              ),
            SizedBox(
              height: 20,
            ),
            Text(widget.description, style: TextStyle(fontSize: 16),
            ),
            SizedBox(
              height: 20,
            ),
            TextField(
              controller: emailController,
              style: TextStyle(color: Colors.white),
              keyboardType: TextInputType.emailAddress,
              decoration: InputDecoration(
                border: OutlineInputBorder(
                  borderSide: BorderSide(color:Theme.of(context).primaryColor)
                ),
                fillColor: Colors.black87,
                hintStyle: TextStyle(color:Colors.grey),
                hintText: 'please enter your email',
                labelText: 'Email',
                labelStyle: TextStyle(color:Colors.white)
              ),  
            ),
            SizedBox(
              height: 20,
            ),
            Container(
              width: double.infinity,
              child: RaisedButton(
                child: Text('Send'),
                onPressed: (){
                  _isLoading 
                  ? CircularProgressIndicator()
                  : print(emailController.text);
                  _forgetPassword(emailController.text);
                  Navigator.of(context).pop();
                }
                ),
            ),
            Container(
              width: double.infinity,
              child: RaisedButton(
                child: Text('Cancel'),
                onPressed: (){
                  Navigator.of(context).pop();
                }
                ),
            ),  
          ],
        ),
      );
    }
  }
  
  </code></pre>