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.