4
respostas

Erro no arquivo Mural.js

Editei o arquivo Mural.js de forma idêntica ao presenteado no vídeo não consigo entender o erro Mural.js:3 Uncaught TypeError: Cannot read property 'map' of null

4 respostas

Fala Wilson! Tudo bom?

Poste aqui seu arquivo "mural.js" para que eu dê uma olhada!

Não esqueça de usar o "inserir código" quando for postar!

Além disso, de antemão, verifique se o elemento em que você está tentando realizar um map realmente existe.

Abraços e sucesso!

Boa tarde, segue o código

const Mural = (function(_render, Filtro){
    "use strict"
    let cartoes = JSON.parse(localStorage.getItem("cartoes")).map(cartaoLocal => new Cartao(cartaoLocal.conteudo, cartaoLocal.tipo)) 
    cartoes.forEach(cartao => {
        preparaCartao(cartao)
    })

    const render = () => _render({cartoes: cartoes, filtro: Filtro.tagsETexto});
    render()
    Filtro.on("filtrado", render)

    function preparaCartao(cartao){
        cartao.on("mudanca.**", salvaCartoes)
        cartao.on("remocao", ()=>{
            cartoes = cartoes.slice(0)
            cartoes.splice(cartoes.indexOf(cartao),1)
            salvaCartoes()
            render()
        })
    }

    function salvaCartoes(){
        localStorage.setItem("cartoes", JSON.stringify(
            cartoes.map(cartao => ({conteudo: cartao.conteudo, tipo: cartao.tipo}))
        ))
    }

    function adiciona(cartao){
        if(logado){
            cartoes.push(cartao)
            salvaCartoes()
            cartao.on("mudanca.**", render)
            preparaCartao(cartao)

            render()
            return true
        } else {
            alert("Você não está logado")
        }
    }

    return Object.seal({
        adiciona
    })

})(Mural_render, Filtro)

Olá. consegui resolver o problema. Provavelmente por causa de alguma configuração ou versão do meu servidor web o " || [] " não estava tendo a resposta adequada. Eu reconstruí o inicio do Mural.js .

let cartoes let cartoesN = JSON.parse(localStorage.getItem("cartoes")) if(cartoesN){ cartoes = cartoesN.map(cartaoLocal => new Cartao(cartaoLocal.conteudo, cartaoLocal.tipo)) }else{ cartoes = [] }

Boa Wilson!

Fico feliz que tenha conseguido resolver.

Ainda tem alguma dúvida? Caso contrário encerrarei o tópico!

Abraços e bom estudo!!