Unhandled Exception: NoSuchMethodError: The method 'validate' was called on null

1,756

Solution 1

child: Form(
        key: _formKey,
        child: Column(

You need to set key in Form widget instead of Column widget. Check it out: https://flutter.dev/docs/cookbook/forms/validation

Solution 2

please interchange the form key check it

new Form(
key: _formKey,
child:.....,
),

official site

Share:
1,756
Anoushk
Author by

Anoushk

Updated on November 25, 2022

Comments

  • Anoushk
    Anoushk over 1 year

    [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The method 'validate' was called on null. E/flutter ( 6538): Receiver: null E/flutter ( 6538): Tried calling: validate() E/flutter ( 6538): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5) E/flutter ( 6538): #1 _RegisterState.build. (package:firebasestarter/screens/authenticate/Register.dart:85:47)

    import 'package:firebasestarter/screens/authenticate/sign_in.dart';
        import 'package:firebasestarter/services/auth.dart';
    import 'package:flutter/material.dart';
    
    class Register extends StatefulWidget {
      final Function toggleView;
    
      Register({this.toggleView});
    
      @override
      _RegisterState createState() => _RegisterState();
    }
    
    class _RegisterState extends State<Register> {
      final AuthService _auth = AuthService();
      final _formKey = GlobalKey<FormState>();
     // final formKey = new GlobalKey();
      //text field state
      String email = '';
      String pass = '';
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          backgroundColor: Colors.brown[100],
          appBar: AppBar(
            backgroundColor: Colors.brown[400],
            elevation: 1,
            title: Text("Sign up to Brew Crew"),
            actions: <Widget>[
              FlatButton.icon(
                icon: Icon(Icons.person),
                label: Text("Sign-In"),
                onPressed: () {
                  widget.toggleView();
                },
              )
            ],
          ),
          body: Container(
              padding: EdgeInsets.symmetric(vertical: 20, horizontal: 50),
              child: Form(
                child: Column(
                  key: _formKey,
                  children: <Widget>[
                    SizedBox(
                      height: 20,
                    ),
                    TextFormField(
                      validator: (value) {
                        if (value.isEmpty) {
                          return 'Please enter some text';
                        }
                        return null;
                      },
                      onChanged: (val) {
                        setState(() => pass = val);
                      },
                    ),
                    SizedBox(
                      height: 20,
                    ),
                    TextFormField(
                      validator: (value) {
                        if (value.length<6) {
                          return 'longer pass pls';
                        }
                        return null;
                      },
                      obscureText: true,
                      onChanged: (val) {
                        setState(() => email = val);
                      },
                    ),
                    SizedBox(
                      height: 20,
                    ),
                    RaisedButton(
                      color: Colors.pink[400],
                      child: Text(
                        "Sign up",
                        style: TextStyle(color: Colors.white),
                      ),
                      onPressed: () async {
                        if (_formKey.currentState.validate()) {
                          // If the form is valid, display a Snackbar.
                          Scaffold.of(context)
                              .showSnackBar(SnackBar(content: Text('Processing Data')));
                        }
                      },
                    )
                  ],
                ),
              )
             
              ),
        );
      }
    }