Petite question traitement de formulaire

Bonjour,

Je souhaite indiquer un retour en cas d’erreur d’insertion, je passe donc par une modal du type :

  _confirmGenre() async {
    if (_formKey.currentState!.validate()) {
      _formKey.currentState!.save();
      String _error = await widget.viewModel
          .addGenreViewModel(_newGenreToAdd.toString().toLowerCase());
      if (_error.isEmpty) {
        _newGenreTextEditing.text = "";
      } else {
        _showModal(context, _error);
      }
    }
  }

Cela fonctionne, mais Flutter indique :
Don’t use 'BuildContext’s across async gaps.
Try rewriting the code to not reference the ‹ BuildContext ›.

Y a t-il une meilleure manière de faire ou c’est correct tout de même ?

Merci

Bonjour,

il me semble que depuis quelques temps, on peut tester si le context est monté, ce qui donnerait:

_confirmGenre() async {
    if (_formKey.currentState!.validate()) {
      _formKey.currentState!.save();
      String _error = await widget.viewModel
          .addGenreViewModel(_newGenreToAdd.toString().toLowerCase());
      if (_error.isEmpty) {
        _newGenreTextEditing.text = "";
      } else {
        if (context.mounted) {
            _showModal(context, _error);
        }
      }
    }
  }

Je pense que ça doit enlever l’avertissement Flutter.

Mais tout à fait ! Merci