Oi Pedro, tudo bem?
Parece que você está quase lá! O método toMap()
deve retornar um Map
que representa os atributos do objeto. No seu caso, você está tentando associar os valores diretamente aos atributos, mas o correto seria associá-los às strings que representam os nomes desses atributos.
Além disso, notei que você não está atribuindo um valor para o atributo estaAutenticada
no Map
.
Aqui está uma ideia de como você pode fazer:
class Pessoa {
String nome;
int idade;
bool estaAutenticada;
Pessoa(this.nome, this.idade, this.estaAutenticada);
Map<String, dynamic> toMap() {
Map<String, dynamic> pessoa = {};
pessoa ['nome'] = this.nome;
pessoa['idade'] = this.idade;
pessoa['estaAutenticada'] = this.estaAutenticada;
if (idade >= 18) {
estaAutenticada = true;
} else {
estaAutenticada = false;
}
return pessoa;
}
}
Nesse exemplo, ao invés de usar diretamente os atributos (nome, idade, estaAutenticada), usamos strings ('nome', 'idade', 'estaAutenticada') para representá-los no Map
. Além disso, adicionamos o return pessoa;
ao final do método toMap()
, para que ele retorne o Map
criado.
Lembre-se de praticar e testar muito, só assim fixamos bem o conteúdo.
Espero ter ajudado.
Um abraço e bons estudos.