Home > Blockchain >  Null check operator used on a null value in flutter using Textformfield
Null check operator used on a null value in flutter using Textformfield

Time:12-01

I am new at flutter and in this simple code i am getting an error

NUll check operator used on a null value

i tried all the solutions that were present here (I run all the commands in my terminal like flutter upgrade and so on) but still i am getting the same error.

 import 'package:flutter/material.dart';

   Future<void> main() async{
    WidgetsFlutterBinding.ensureInitialized();

   runApp(MaterialApp(
   home: Home(),
   ));
  }

  class Home extends StatefulWidget {
  const Home({Key? key}) : super(key: key);

  @override
 _HomeState createState() => _HomeState();
  }

  class _HomeState extends State<Home> {

 final  _key =GlobalKey<FormState>();
  final textformfield=TextEditingController();

 @override
  Widget build(BuildContext context) {
  return Scaffold(
   body: Center(
     child: Container(
      child: Column(
        children: [
          SizedBox(height: 300,),
          TextFormField(
            controller: textformfield,
            key: _key,
            validator: (value){
              if(value!.isEmpty){
                return "Please enter your email";
              }
              else return null;
            },
          ),
          FlatButton(
              onPressed: (){
                 if(_key.currentState!.validate()){
                            print("validate");
                 }
                 else print('NUll');
              },
              child: Text('Validate')
                ),
              ],
            ),
         ),
        ),
      );
     }
    }

CodePudding user response:

Try below code hope its help to you. add your widgets inside Form() and use TextButton instead of FlatButton because FlatButton is deprecated by flutter

refer form Validation here

  Form(
        key: _key,
        child: Column(
          children: [
            SizedBox(
              height: 300,
            ),
            TextFormField(
              controller: textformfield,
              validator: (value) {
                if (value!.isEmpty) {
                  return "Please enter your email";
                } else
                  return null;
              },
            ),
            TextButton(
                onPressed: () {
                  if (_key.currentState!.validate()) {
                    print("validate");
                  } else
                    print('NUll');
                },
                child: Text('Validate')),
          ],
        ),
      ),

CodePudding user response:

First, you need to have a Form Widget and put TextFormFields inside it. https://docs.flutter.dev/cookbook/forms/validation

return Form(
  key: _key,
  child: Column(
    children: <Widget>[
      // Add TextFormFields and ElevatedButton here.
    ],
  ),
);
  • Related