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

Erro ao implementar o super()

Estou recebendo o seguinte erro ao implementar o super() dentro do método construtor: Uncaught SyntaxError: 'super' keyword unexpected here

class View { constructor(elemento) {

    this._elemento = elemento

}

template() {

    throw new Error('O método template deve ser implementado');

}

update(modelo) {

    this._elemento.innerHTML = this._template(modelo) // modelo é a lista de negociacões que vem de NegociacaoController

}

}

class NegociacoesView extends View {

contructor(elemento) {
    super(elemento);
}

template(modelo) {
    return `<table class="table table-hover table-bordered">
                <thead>
                    <tr>
                        <th>DATA</th>
                        <th>QUANTIDADE</th>
                        <th>VALOR</th>
                        <th>VOLUME</th>
                    </tr>
                </thead>

                <tbody>
                    ${
                        modelo.negociacoes.map( n =>  `

                                <tr>
                                    <td> ${DateHelper.dateToText(n.data)} </td>
                                    <td> ${n.quantidade} </td>
                                    <td> ${n.valor} </td>
                                    <td> ${n.volume} </td>
                                </tr> 

                        `).join('') // o join faz com que o array retornado pelo map seja transformado em uma string
                                    // evitando que o retorno seja um array, que é separado por vírgulas que serão mostradas no template
                    }
                </tbody>

                <tfoot>

                    <td colspan="3"> </td>
                    <td>
                        ${ modelo.negociacoes.reduce((total, n) => total + n.volume, 0.0) }   
                    </td>

                </tfoot>
            </table>`
}

}

class MensagemView extends View {

contructor(elemento) {
    super(elemento);
}   

template(modelo) {
    if(modelo.texto){
        return `<p style='text-align:center' class='alert alert-info'> ${ modelo.texto } </p>`
    }
    else {
        return ''
    }
}

}

3 respostas
solução!

Boa tarde, Lucas! Como vai?

O problema é que vc escreveu contructor no construtor das classes NegociacoesView e MensagemView quando na realidade o correto é constructor! Faltou um s!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Verdade, nem tinha percebido, valeu!

Por nada, Lucas! Sempre que tiver alguma dúvida é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!