Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro: TypeError: Cannot read property 'getDate' of undefined

Olá, estou com um erro que não consigo resolver. Meu código estava funcionando perfeitamente, mas quando fui fazer as alterações das duas últimas lições, algo de errado aconteceu e a mensagem de alto nível mostrada acima do formulário ficou como "TypeError: Cannot read property 'getDate' of undefined".

Código do meu NegociacaoController:

importaNegociacoes() {

      let negociacaoService = new NegociacaoService();

      negociacaoService.obtemNegociacoes()
        .then(negociacoes => {

          negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));
          this._mensagem.texto = 'Negociações importadas com sucesso.';
        })
        .catch(erro => {

          console.log(erro);
          this._mensagem.texto = erro}
        );
}

Código do meu NegociacaoService:

class NegociacaoService {

  constructor() {

    this._httpService = new HttpService();
  }

  obtemNegociacoes() {

    return Promise.all([
      this.obtemNegociacoesDaSemana(),
      this.obtemNegociacoesDaSemanaAnterior(),
      this.obtemNegociacoesDaSemanaRetrasada()
    ]).then(negociacoes => {
      //aqui precisamos fazer um flatting do array de arrays de negociacoes
      negociacoes
        .reduce((arrayAchatado, arrayIncluso) => arrayAchatado.concat(arrayIncluso), [])

      return negociacoes;
    }).catch(erro => {

      throw new Error(erro);
    });
  }

  obtemNegociacoesDaSemana() {

    return this._httpService.get('negociacoes/semana')
      .then(negociacoes => {
        console.log(negociacoes);
        return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor));
      })
      .catch(erro => {
        console.log(erro);
        throw new Error('Não foi possível obter as negociações da semana.');
      })
  }

  obtemNegociacoesDaSemanaAnterior () {

    return this._httpService.get('negociacoes/anterior')
      .then(negociacoes => {
        console.log(negociacoes);
        return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor));
      })
      .catch(erro => {
        console.log(erro);
        throw new Error('Não foi possível obter as negociações da semana anterior.');
      })
  }

  obtemNegociacoesDaSemanaRetrasada() {

    return this._httpService.get('negociacoes/retrasada')
      .then(negociacoes => {
        console.log(negociacoes);
        return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor));
      })
      .catch(erro => {
        console.log(erro);
        reject('Não foi possível obter as negociações da semana retrasada.');
      })
  }
}
3 respostas

Fala ai Rômulo, tudo bem? Olhando assim é complicado saber qual linha está dando esse erro.

Sendo assim peço que compartilhe o projeto, dessa forma eu consigo simular o problema na minha máquina e analisá-lo com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Fico no aguardo.

solução!

Fala, Matheus, agradeço pela preocupação em ajudar, mas, na vontade de seguir em frente e terminar o curso, acabei substituindo meu projeto pelo projeto oferecido para download pelo instrutor. Então, nem tenho como compartilhar mais o código que estava dando erro. De qualquer forma, obrigado pela ajuda.

Magina Rômulo, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.