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

761

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,
)
Share:
761
han da
Author by

han da

Updated on December 29, 2022

Comments

  • han da
    han da about 1 year

    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!