Quando vc usa as chaves{}, ele fica opcional e quando vc coloca o @required ele fica obrigatório. Isso não anula a função das chaves de deixar o argumento opcional?
Quando vc usa as chaves{}, ele fica opcional e quando vc coloca o @required ele fica obrigatório. Isso não anula a função das chaves de deixar o argumento opcional?
Oi Adriano tudo bom irmão? Desculpa a demora pra responder. Na verdade o @required vai te ajudar quando você for usar a função! Ele vai te dizer o que está faltando quando você não souber o que tem que colocar nela pra ela funcionar ( lembra lá do onTap nos botões que é obrigatório? é por conta do @required!)
Então vamos lá! vamos supor que existe uma nova classe chamada Dragões:
class Dragões extends StatelessWidget {
  final Asas asas;
  final Escamas  escamas;
  final Fogo fogo;
  Dragões(this.asas, {@required this.fogo}, {this.escamas});Sabemos que Dragões sempre tem asas e sempre cospem fogo mas alguns dragões não tem escamas
Isso significa que quando você for usar a Classe dragão ele vai te pedir pra colocar:
espero ter ajudado :)
Oi Adriano, tudo bem?
O @required é necessário quando você tem mais de 1 parâmetro nomeado e deseja que algum dos parâmetros seja obrigatório. Dessa forma, é possível "decorar" algum parâmetro para que em excessão ele seja obrigatório.
class Pessoa {
// Suponhamos que o atributo nome tenha que ser 
// obrigatóriamente informado
  final String nome; 
  final int idade;
  final String endereco;
// Anotamos o parâmetro com @required no construtor da classe
  Pessoa({
    @required this.nome, 
    this.idade,
    this.endereco,
  });
}Dessa forma, através do construtor da classe é possível anotar aquele atributo como requerido.