TextFormField 验证器参数类型“动态函数()”不能分配给
Posted
技术标签:
【中文标题】TextFormField 验证器参数类型“动态函数()”不能分配给【英文标题】:TextFormField validator The argument type 'dynamic Function()' can't be assigned to the 【发布时间】:2021-12-07 18:37:51 【问题描述】:我正在尝试制作自定义小部件 TextFormField, 但是验证器:验证器,显示错误
参数类型“动态函数()”不能分配给参数类型“字符串?函数(字符串?)?'.dartargument_type_not_assignable 动态 Function() 验证器 包:store/widgets/mytextformfield.dart
mytextformfield.dart
导入'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 上
MyTextFormField(
obserText: obserText,
name: "Email",
validator: (value)
if (value == "")
return "Please Fill Email";
else if (!regExp.hasMatch(value!))
return "Email is Invaild";
return "";
,
),
【问题讨论】:
【参考方案1】:验证器必须有参数,如果值没有任何错误则返回null,如果值无效则返回一个String表示错误。
TextFormField(
// The validator receives the text that the user has entered.
validator: (value)
if (value == null || value.isEmpty)
return 'Please enter some text';
return null;
,
),
【讨论】:
我知道你的意思,但我会在另一个名为 login.dart 的文件中使用它,我会在 YouTube 上跟着 tut 和他一起工作,我将编辑我的帖子检查我的意思是什么代码使用以上是关于TextFormField 验证器参数类型“动态函数()”不能分配给的主要内容,如果未能解决你的问题,请参考以下文章
AlertDialog 中的 TextFormField 未验证
如何使用 GetX 实现 Flutter TextFormField 验证器?