1
resposta

Passar dados entre páginas

Tenho tentato passar dados de uma página à outra, mais especificamente o nome do usuario e o departamento. Procurei na internet soluções para isso e encontrei algumas soluções, uma delas é:

Dentro do meu 'router-link' eu adiciono esse para metro 'query' e assim é possivel pegar o valor passado:

 <router-link :to="{path: '/ramais', query:{usuario: this.search}}">

Na página que esta recebendo, que estou encaminhando os dados, possui o seguinte código para receber:

 import {routes} from '../../../routes.js';

    export default {

    data(){
        return{
            idDepartamento: '',
            nomeUsuario:'',
        }
    },

    created() {

        if(this.$router.query.usuario){
           this.nomeUsuario = this.$router.query.usuario;
        }
    }

Porém estou obtendo o seguinte erro:

vue.esm.js?efeb:591 [Vue warn]: Error in created hook: "TypeError: Cannot read property 'usuario' of undefined"

Minha dúvida é: Como posso transferir dados de uma página à outra? Ou como resolver este erro?

P.S.: Estou seguindo o seguinte tutorial: https://www.thepolyglotdeveloper.com/2017/11/pass-data-between-routes-vuejs-web-application/

1 resposta

O problema esta no:

<router-link :to="{path: '/ramais', query:{usuario: this.search}}">

Aonde esta sendo declarada as rotas voce deve passar um nome e assim usar o nome no router link

<router-link :to="{ name: 'nome_da_rota', query:{usuario: this.search}}">

quando voce faz pelo path a query de fato será vazia. O endereco esperado seria algo do tipo /ramais?usuario=x porem o endereco passado é /ramais.