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

Erro ao executar submit

Ao tentar exibir uma data na negociação apresenta esse alerta

class Negociacao {

    constructor(data, quantidade, valor){
        this._data = new Date(data.getTime());
        this._quantidade = quantidade;
        this._valor = valor;
        Object.freeze(this);
    }

    getVolume(){
        return this._quantidade * this._valor;
    }

    getData(){
        return new Date(this._data.getTime());
    }

    getValor(){
        return this._valor;
    }

    getQuantidade(){
        return this._quantidade;
    }
}

class NegociacaoController {

    constructor(){
        let $ = document.querySelector.bind(document);

        this._inputValor = $('#valor');
        this._inputData = $('#data');
        this._inputQuantidade = $('#quantidade');

    }

    adiciona(event) {

        event.preventDefault();

        let data = new Date(
            ...this._inputData.value
                .split('-')
                .map((item, indice) => item - indice % 2)
        );

        let negociacao = new Negociacao(
            data,
            this._inputQuantidade.value,
            this._inputValor.value  
        );

        let diaMesAno = negociacao.data.getDate() 
            + '/' + negociacao.data.getMonth();
            + '/' + negociacao.data.getFullYear();

        console.log(diaMesAno);
    }
}

Uncaught TypeError: Cannot read property 'getDate' of undefined at NegociacaoController.adiciona (NegociacaoController.js:28) at HTMLFormElement.onsubmit (index.html:14)

2 respostas
solução!

Oi, Thiago, tudo bem?

Utilize os getters dessa forma:

get data() 

Separado e não junto como você declarou. E outro pequeno problema é que não aparece o ano, porque em negociacao.data.getMonth(); precisa-se tirar o ; do final da expressão para a próxima ser lida.

testa e me fala se deu certo :}

Deu tudo certo Professor, obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software