Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Uso da anotação 'required' no construtor faz quebrar o código.

Porque não consigo usar a anotação 'required' no construtor do Editor. Ao adicionar a anotaçao 'required' o flutter entende que deveria ser um tipo e quebra o código.

Olhando para o construtor do Tooltip (material design) temos o seguite código:

 const Tooltip({
    Key? key,
    required this.message,
    this.height,
    this.padding,
    this.margin,
    this.verticalOffset,
    this.preferBelow,
    this.excludeFromSemantics,
    this.decoration,
    this.textStyle,
    this.waitDuration,
    this.showDuration,
    this.child,
  }) : assert(message != null),
       super(key: key);

  /// The text to display in the tooltip.
  final String message;
`

Quando tento fazer o mesmo no construtor do 'Editor' recebo uma mensagem de que a anotação 'required' não é um tipo. "required isn't a type. Try correcting the name to match an existing type.dartnot_a_type" "The parameter type 'dynamic' is incompatible with the field type 'TextEditingController'. Try changing or removing the parameter's type, or changing the field's type.dart(field_initializing_formal_not_assignable)"

class Editor extends StatelessWidget{

  final TextEditingController controller;
  final String label;
  final String hint;
  final IconData icon;  

  const Editor(
    { 
      required this.controller,
      this.label,
      this.hint,
      this.icon,
    });

  @override
  Widget build(BuildContext context) {
...
1 resposta
solução!

funcionou quando usei o '@' junto. Engraçado que no construtor do Tooltip oficial é apenas 'required'. Deve ter haver com versão, não sei.

  const Editor(
    { 
      @required this.controller,
      this.label,
      this.hint,
      this.icon,
    });