繁体   English   中英

如何在 flutter 中使用 null 安全制作验证表

[英]how to make validation form in flutter with null safety

how to make validation form in flutter with null safety,有一个问题,但我不能在formkey或filed中输入select,我尝试了很多方法,你可以看到这段代码并尝试帮助我安全地使用null,谢谢

我有以下代码到 class

import 'package:flutter/cupertino.dart';
    import 'package:flutter/material.dart';
    import 'package:login_project/shared/components/components.dart';
    
    class LoginScreen extends StatefulWidget{
      @override
      _LoginScreenState createState() => _LoginScreenState();
    }
    
    class _LoginScreenState extends State<LoginScreen> {
      var emailController= TextEditingController();
    
      var passwordController= TextEditingController();
    
      var formKey = GlobalKey<FormState>();

我使用表单键将其放入表单小部件中,因为表单小部件中的 TFF 然后我使用验证器

 validator:(String? value){
                        if(value != null && value.isEmpty){
                          return "password must be not empty";
                        }
                          return null;
                      },

然后在按钮中我有这个:

 defaultButton(
                        // width:double.infinity,
                      text: 'Login',
                        // background: Colors.blue,
                      function: (){
    
                        if(formKey.currentState!.validate()){
                          print(emailController.text);
                          print(passwordController.text);
                        }
    
                      },
      

但我在 TTF 或 formKey 中的 null saftey 中有错误,我尝试解决它然后制作一个屏幕作为 null 检查操作员。 谢谢

请使用它:

validator:(String? value){
  if(value!.isEmpty){
    return "password must be not empty";
  }
  return null;
},

像这样编写代码:

validator:(String? value){
  if(value!.isEmpty){
    return "password must be not empty";
  }
  return null;
},

并删除自定义按钮并将其放置:

 child: MaterialButton(
                onPressed:(){
                  if(_formKey.currentState!.validate()){
                        print(emailController.text);
                        print(passwordController.text);
                      }
              },

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM