Валидатор текстового поля Тип аргумента «динамическая функция ()» не может быть присвоен

#android #flutter #visual-studio-code

Вопрос:

я пытаюсь создать пользовательское поле текстовой формы виджета, но валидатор: валидатор, показывает ошибку

Тип аргумента «динамическая функция ()» не может быть присвоен типу параметра «Строка»? Функция(строка?)?’.dartargument_type_not_assignable динамическая функция() пакет валидатора:хранилище/виджеты/mytextformfield.dart

mytextformfield.дротик lt;lt;

импорт ‘упаковка:флаттер/материал.дротик’;

 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,  ),  );  } }  

при входе в систему.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, если значение не содержит ошибок, и возвращать строку для отображения ошибки, если значение недопустимо.

 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;  },  ),  

Комментарии:

1. я знаю , что вы имеете в виду, но я буду использовать это в файле под названием login. дарт , и я следую за ним на YouTube , и эта работа с ним, я отредактирую свой пост, проверю, какой код я собираюсь использовать