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

'getDate' of undefined or null reference

Fui seguindo o curso e me aparece esse erro seguue o código do controller

class NegociacaoController{
    constructor(){

       let $= document.querySelector.bind(document);
       this._inputData = $("#data");
       this._inputQuatidade = $("#quantidade");
       this._inputValor= $("#valor");

        self= this;

        this._listaNegociacoes = new Proxy(new ListaNegociacoes(),{

          get(target, prop, receiver){

             if(['adiciona', 'esvazia'].includes(prop) && typeof(target[prop]) == typeof(Function)){

               console.log(`a propriedade "${prop}" foi interceptada`);
               Reflect.apply(target[prop],target ,arguments); 
                 self._negociacoesView.update(target);



             }   

              return  Reflect.get(target,prop ,receiver);
          }
      });

        /*

       this._listaNegociacoes = new ListaNegociacoes(model =>

           this._negociacoesView.update(model)
       );
       */
       this._negociacoesView = new NegociacoesView($("#negocicoesView"));
       this._negociacoesView.update(this._listaNegociacoes);
        this._listaNegociacoes.adiciona(new Negociacao(new Date(),1,100));

       this._mensagem = new Mensagem();
       this._mensagemView = new MensagemView($("#mensagemView"));
       this._mensagemView.update(this._mensagem);
    }


    apaga(){

        this._listaNegociacoes.esvazia();
        this._negociacoesView.update(target);

        this._mensagem.texto = "Negocição apagada com sucesso!";
        this._mensagemView.update(this._mensagem);


    }

    _criaNegociacao(){

        return new Negociacao(
                     DataHelper.textoParaData(this._inputData.value),
                     this._inputQuatidade.value,
                     this._inputValor.value); 
    }

    _limpaFormulario(){

        this._inputData.value = "";
        this._inputQuatidade.value = 1;
        this._inputValor.value= 0,0;
         this._inputData.focus();
    }

    adicionar(event){
     event.preventDefault();



     this._listaNegociacoes.adiciona(this._criaNegociacao());
        this._negociacoesView.update(this._listaNegociacoes);
        console.log(this._criaNegociacao());
     this._listaNegociacoes.negociacoes.push(this._criaNegociacao()); 

     console.log(this._listaNegociacoes);

     this._mensagem.texto = "Negociacao adicionada com sucesso";
     this._mensagemView.update(this._mensagem);  



     this._limpaFormulario();

     console.log(this._listaNegociacoes.negociacoes);    
     console.log(DataHelper.dataParaTexto(negociacao.data));




    }


}

código do class listanegociacoes !

class ListaNegociacoes{
    constructor(){

         this._negociacoes = [];
       // this._armadilha = armadilha;


    }

    adiciona(negociacao) {
    this._negociacoes.push(negociacao);
    //this._armadilha(this);
    //Reflect.apply(this._armadilha,this._contexto,[this]);

}

get negociacoes() {
    return [].concat(this._negociacoes);
}

esvazia() {
    this._negociacoes = [];
    //this._armadilha(this);
    //Reflect.apply(this._armadilha,this._contexto,[this]);
}
}
1 resposta
solução!

Caio, bom dia!

A referência que você está usando está nula, você poderia mandar o arquivo no qual está sendo chamado getDate, mas já dando uma ideia, o método getDate não existe, se você quer pegar o valor de date você precisa usar o objeto e acessar a propriedade, deve ser algo como:

negociacao.date

Espero ter ajudado e bons estudos! Se ainda restar dúvidas compartilha com a gente o código e eu vejo melhor o problema