首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextFormField验证器参数

TextFormField验证器参数
EN

Stack Overflow用户
提问于 2021-10-21 10:40:57
回答 3查看 61关注 0票数 0

我正在尝试制作一个自定义小部件TextFormField,但是验证器:验证器会显示一个错误。

参数类型dynamic Function()不能分配给参数类型'String? Function(String?)?'.dartargument_type_not_assignable dynamic Function()验证程序包:store/widgets/mytextformfield.dart. type

mytextformfield.dart <<<文件小部件TextFormField

代码语言:javascript
复制
import 'package:flutter/material.dart';



class MyTextFormField extends StatelessWidget {
  final Function() validator;
  final bool obserText;
  final String name;

  const MyTextFormField({
    Key? key,
    required this.obserText,
    required this.validator,
    required this.name,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return TextFormField(
      obscureText: obserText,
      **validator: validator,**
      decoration: InputDecoration(
        border: const OutlineInputBorder(),
        hintText: name,
      ),
    );
  }
}

login.dart

代码语言:javascript
复制
MyTextFormField(
      obserText: obserText,
      name: "Email",
          validator: (value) {
          if (value == "") {
         return "Please Fill Email";
        } else if (!regExp.hasMatch(value!)) {
          return "Email is Invaild";
        }
      return "";
      },
     )
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-10-21 10:51:18

替换这一行:

代码语言:javascript
复制
final Function() validator;

至:

代码语言:javascript
复制
final FormFieldValidator<String>? validator;
票数 0
EN

Stack Overflow用户

发布于 2021-10-21 10:49:51

尝试只定义为Function而不是Function()

代码语言:javascript
复制
final Function validator;
票数 0
EN

Stack Overflow用户

发布于 2021-10-21 10:52:40

更改:

代码语言:javascript
复制
final Function() validator;

通过以下方式:

代码语言:javascript
复制
final FormFieldValidator<String>? validator

正如在TextFormField类中声明的那样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69660439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档