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

função map não funcionou

Estou fazendo as aulas de JavaScript: Conhecendo o Browser e padrões de projeto. Na video aula 02 - Construindo um template dinâmico com a função map, do capítulo 5, aparece um erro: 'Uncaught TypeError: Cannot read property 'map' of undefined'. Tá igualzinho más o body nem aparece. Alguém já passou por esse problema ? Valeu.

4 respostas

Fala ai Fernando, tudo bem? Consegue compartilhar os codigos para a gente dar uma olhada e verificar possíveis pontos de falha? Isso porque falando assim é bem complicado pois o problema pode estar acontecendo por N razões.

Fico no aguardo.

Opa Matheus. Na verdade o código está identico ao Download do exercício. Fico no aguardo, vlw.

class NegociacoesView {

constructor(elemento) {

    this._elemento = elemento;
}

_template(model) {

    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>
            ${model.negociacoes.map(n => `

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

            `).join('')}                
        </tbody>

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

    </table>
    `;
}

update(model) {
    this._elemento.innerHTML = this._template(model);
}

}

Boa tarde gente. Será que alguém pode me ajudar nesse erro que encontrei ?

solução!

Fala ai Fernando, adicione um log no inicio da função _template:

console.log(model)

E veja o que será logado, provavelmente o lugar que chama a função template não está recebendo o modelo correto.

Se quiser, compartilhar o projeto completo, assim eu consigo simular o problema por aqui e analisá-lo com mais calma.

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

Espero ter ajudado.