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

Uncaught RangeError: Maximum call stack size exceeded

Saudações!!

Estou tentando converter minha data para DD/MM/AAAA e apesar de copiar exatamente o mesmo que o professor eu obtive o erro:

Uncaught RangeError: Maximum call stack size exceeded at Negociacao.get data [as data] (Negociacao.js:14)

Sendo a parte destacada repetida mais umas 7x.

Gostaria de saber o porque isso acontece e o que significa esse erro.

Obrigado!!

class NegociacaoController {

    constructor() {

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

        this.inputData = $('#data');
        this.inputQuantidade = $('#quantidade');
        this.inputValor = $('#valor');

    }

    adiciona(event) {
        event.preventDefault();

        let data = new Date(this.inputData.value.split('-'));

        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)

        }

}
2 respostas

Boa noite!

Vcs conseguem me dar um retorno breve? Tenho reanalisado meu código e não tenho visto onde consigo consertar esse erro.

solução!

Fala, Yago! Tudo bem?

Desculpa pela demora!

O erro indica um problema no getter data. Um erro de Maximum Call Stack Size Exceeded geralmente indica um laço infinito.

Por isso, verifique não a classe NegociacaoController e sim a Negociacao, confirme que seu getter possui um nome diferente da propriedade que ele retorna. No caso de data, o código deve ser o seguinte:

get data() {
    return this._data;
}

Se o retorno for this.data, perceba que data retorna a si mesmo, que retorna a si mesmo, criando um loop infinito. Caso tenha alguma dúvida, recomendo rever essa atividade.

Espero ter ajudado!