我正在尝试制作一个自定义小部件TextFormField,但是验证器:验证器会显示一个错误。
参数类型dynamic Function()不能分配给参数类型'String? Function(String?)?'.dartargument_type_not_assignable dynamic Function()验证程序包:store/widgets/mytextformfield.dart. type
mytextformfield.dart <<<文件小部件TextFormField
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
MyTextFormField(
obserText: obserText,
name: "Email",
validator: (value) {
if (value == "") {
return "Please Fill Email";
} else if (!regExp.hasMatch(value!)) {
return "Email is Invaild";
}
return "";
},
)发布于 2021-10-21 10:51:18
替换这一行:
final Function() validator;至:
final FormFieldValidator<String>? validator;发布于 2021-10-21 10:49:51
尝试只定义为Function而不是Function()
final Function validator;发布于 2021-10-21 10:52:40
更改:
final Function() validator;通过以下方式:
final FormFieldValidator<String>? validator正如在TextFormField类中声明的那样
https://stackoverflow.com/questions/69660439
复制相似问题