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

Dando erro no router.js

router.js:22 Uncaught TypeError: iniciarRota is not a function
    at navegacao (router.js:22)
    at eval (main.js:5)
    at Module../src/main.js (main.js:569)
    at __webpack_require__ (main.js:20)
    at eval (webpack:///multi_(:8080/webpack)-dev-server/client?:2:18)
    at Object.0 (main.js:592)
    at __webpack_require__ (main.js:20)
    at main.js:84
    at main.js:87

_______________________________________________________________________________

import inicializaCadastro from "./componentes/cadastro/componente-cadastro";
import inicializaTabela from "./componentes/lista/listagem-cliente"

const rotas = { 
    "/": inicializaTabela,
    "/cadastro": inicializaCadastro
}

const rootDiv = document.querySelector('[data-container]')


const navegacao = pathname => { 
    window.history.pushState({}, pathname, window.location.origin + pathname)

    rootDiv.innerHTML = ""
    const iniciarRota = rotas[window.location.pathname]

    rootDiv.appendChild(iniciarRota())

}

window.navegacao = navegacao;

window.onpopstate = () => { 

rootDiv.innerHTML = ""

rootDiv.appendChild(rotas[window.location.pathname]())

}

export { navegacao }
3 respostas
solução!

Fala ai Rodrigo, tudo bem? Repare no seu código:

const iniciarRota = rotas[window.location.pathname]

Ele esta buscando alguma função que dê match com a rota da aplicação atual:

const rotas = { 
    "/": inicializaTabela,
    "/cadastro": inicializaCadastro
}

Pode ser que ele esta dando esse erro por dois motivos:

  1. A rota atual não existe no seu objeto de rotas, isso vai retornar undefined e não será uma função.
  2. O valor passado para as rotas no objeto rotas não funções, no caso: inicializaTabela ou inicializaCadastro

Dá uma olhada no path atual e verifique o que foi importado e passado para as rotas.

Espero ter ajudado.

Obrigado Matheus,

encontrei o erro.

Estava num export.

Valew.

Boa Rodrigo, fico feliz que tenha achado.

Sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.