1
resposta

relacionado à parte 8:35 do vídeo

Aparece um erro ao escrever: "Editor({this.controlador, this.rotulo, this.dica, this.icone});", talvez seja alguma atualização do Flutter, mas ele não aceita mais assim, ele sugere que adicione o required, ficando assim: Editor({required this.controlador, required this.rotulo, required this.dica, required this.icone});. Com isso, fica obrigatório o envio de um parâmetro na chamada da função. Há alguma alternativa ou é isso mesmo?

1 resposta

Olá, Gidalti! Vou tentar te ajudar.

Na declaração das variáveis coloque uma interrogação (?) logo após o tipo. Veja no exemplo abaixo:

final TextEditingController? controlador; final String? rotulo; final String? dica; final IconData? icone;

A interrogação significa que a variável daquele determinado tipo pode receber um valor null (nulo). Dessa forma, o construtor fica flexível, ou seja, não vai obrigar que você passe todos os parâmetros.

//Construtor: Editor({this.controlador, this.rotulo, this.dica, this.icone});

Note o exemplo abaixo, o primeiro Editor utiliza o controlador, a dica e o rotulo (3 dos 4 declarados). Já o segundo utiliza a dica, controlador, rotulo e o icone (4 dos 4 declarados). Note que a ordem não impacta pois os argumentos são determinados (nome e valor).

//Primeiro Editor: Editor( controlador: _controladorCampoNumeroConta, dica: '0000', rotulo: 'Número da Conta'),

//Segundo Editor: Editor( dica: '0.00', controlador: controladorCampoValor, rotulo: 'Valor', icone: Icons.monetizationon),