Создание класса для обработки ошибок текстового поля

#flutter

Вопрос:

Я пытаюсь обрабатывать ошибки из своего текстового поля по-другому, я не хочу, чтобы ошибка от валидатора отображалась в текстовом поле, вместо этого я покажу ошибку в закусочной. Что я пытаюсь сделать, так это создать класс ошибок, в котором будут обрабатываться ошибки. В этом классе у меня будет список, в который будут поступать ошибки, если таковые имеются. У меня есть несколько виджетов на этом экране, и главный экран будет вызывать этот класс, поэтому я буду передавать класс ошибок в качестве параметров для других виджетов. Хотя у меня возникли проблемы с закусочной и ошибками.
введите описание изображения здесь

Класс ошибок:

 import 'dart:math';

class Errors {
  static List<String>? erros;

  void product_error(String error) {
    switch (error) {
      case 'Título muito curto!':
        erros!.add('Título muito curto!');
        break;
      case 'Descrição muito curta':
        erros!.add('Descrição muito curta');
        break;
      default:
        break;
    }
  }

  @override
  String toString() {
    return 'List: $erros';
  }
}

 

Это фрагмент моего экрана:

 body: Form(
                key: formKey,
                child: ListView(
                  children: [
                    ImagesForm(product),
                    Divider(),
                    Padding(
                      padding: const EdgeInsets.all(16),
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.stretch,
                        children: [
                          TextFormField(
                            initialValue: product.name,
                            decoration: const InputDecoration(
                                hintText: 'Título',
                                border: InputBorder.none,
                                errorStyle: TextStyle(height: 0)),
                            style: GoogleFonts.firaCode(
                                textStyle: TextStyle(
                                    fontSize: 20, fontWeight: FontWeight.w600)),
                            validator: (name) {
                              if (name!.length < 6) {
                                errors.product_error('Título muito curto!');
                                return '';
                              }
                              return null;
                            },
                            onSaved: (name) => product.name = name!,
                          ),
                          Padding(
                            padding: const EdgeInsets.only(top: 8),
                            child: Text(
                              'A partir de',
                              style: GoogleFonts.firaCode(
                                  textStyle: TextStyle(
                                      color: Colors.grey[800], fontSize: 13)),
                            ),
                          ),
 

And this is the raised button:

 RaisedButton(
                              onPressed: !product.loading
                                  ? () async {
                                      if (formKey.currentState!.validate()) {
                                        formKey.currentState!.save();
                                        await product.save();
                                        context
                                            .read<ProductManager>()
                                            .update(product);
                                        Navigator.pop(context);
                                      } else {
                                        ScaffoldMessenger.of(context)
                                            .showSnackBar(SnackBar(
                                          content: Text(errors.toString()),
                                          backgroundColor: Colors.red,
                                        ));
                                      }
                                    }
                                  : null,