han da
han da

Reputation: 95

How to fix "type 'String' is not a subtype of type '(String?) => String?" error in flutter

I am learning flutter and getting so many errors with flutter...

I am trying to get a validation of text fields with the following methods:

validateName() {
String value = '';
if (value.isEmpty) return 'Username is Required.';
final RegExp nameExp = new RegExp(r'^[A-za-zğüşöçİĞÜŞÖÇ ]+$');
if (!nameExp.hasMatch(value))
  return 'Please enter only alphabetical characters.';
return value;
}

However, I am getting the above mentioned error on validationFunction in the textformbuilder:

TextFormBuilder(
        enabled: !viewModel.loading,
        prefix: Feather.user,
        hintText: "Username",
        textInputAction: TextInputAction.next,
        validateFunction: validateName(),
        onSaved: (String val) {
          viewModel.setName(val);
        },
        focusNode: viewModel.usernameFN,
        nextFocusNode: viewModel.emailFN,
      ),

Thanks in advance!

Upvotes: 1

Views: 3188

Answers (1)

Davii The King
Davii The King

Reputation: 509

validate function is different from your function...so change the function validate name

  String validateName(String? value) {
   if (value!.isEmpty) return 'Username is Required.';
   final RegExp nameExp = new RegExp(r'^[A-za-zğüşöçİĞÜŞÖÇ ]+$');
   if (!nameExp.hasMatch(value))
   return 'Please enter only alphabetical characters.';
   return value;
  }

and on the textfield builder...put the validateFunction like this

TextFormBuilder(
 validateFunction: validateName,
)

Upvotes: 1

Related Questions