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

O que tem errado aqui gente? Alguém pode me explicar?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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] = 'Chico';
pessoa[idade] = 29;
pessoa[estaAutenticada];
if (idade >= 18) {
 estaAutenticada = true;
} else {
estaAutenticada = false; 
 }
}
1 resposta
solução!

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.