Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

159
Visualizações
No se pueden enviar accesorios en vuejs

Estoy tratando de enviar 2 accesorios a mi componente de barra de navegación pero no recibe los datos.

Esto es lo que obtengo en lugar de mis datos:

una

Código:

Front.vue (plantilla superior)

 <template> <front-nav :menus="menus" :settings="settings"></front-nav> <router-view :key="$route.fullPath"></router-view> <front-footer></front-footer> </template> <script> import frontNav from './frontNavBar.vue'; import frontFooter from './frontFooter.vue'; export default { name: 'front', data(){ return { settings: { name: '', favicon: '', logo: '', }, menus: [], } }, components: { frontNav, frontFooter }, mounted() { this.getData(); }, methods: { getData() { axios.get('/api/general') .then(response => { this.settings = response.data.settings[0]; this.menus = response.data.menus; }) .catch(function (error) { console.log('error', error); }); } }, } </script>

Componente Nabar (accesorios de recepción)

 <template> <div>data goes here...</div> </template> <script> export default { name: 'frontNav', props: ['settings', 'menus'], data() { // }, mounted() { console.log('settings: ', this.settings) console.log('menus: ', this.menus) }, methods: { // } } </script>

los resultados de console.log('settings: ', this.settings) y console.log('menus: ', this.menus) están en la imagen de arriba.

¿Alguna idea?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Está montando front-nav antes de getData() y devuelva la respuesta adecuada, por lo tanto, los accesorios están vacíos. Debe esperar a que getData() se complete antes de montar front-nav .

Podrías hacer algo como:

  1. Usar <Suspense>

  2. Use <front-nav v-if="menus" :menus="menus" :settings="settings"> o algo apropiado que sepa que tendrá un valor cuando getData() devuelva una respuesta y tenga un valor significativo.

about 4 years ago · Juan Pablo Isaza Relatório

0

Resuelto

childDataLoaded: false, a mi componente Front.vue y lo configuré como verdadero cuando se cargan los datos para que funcione ahora, así es como:

 <template> <template v-if="childDataLoaded"> // <-- here <front-nav :menus="menus" :settings="settings"></front-nav> </template> <router-view :key="$route.fullPath"></router-view> <front-footer></front-footer> </template> <script> import frontNav from './frontNavBar.vue'; import frontFooter from './frontFooter.vue'; export default { name: 'front', data(){ return { childDataLoaded: false, // <-- here settings: { name: '', favicon: '', logo: '', }, menus: [], } }, components: { frontNav, frontFooter }, mounted() { this.getData(); }, methods: { getData() { axios.get('/api/general') .then(response => { this.settings = response.data.settings[0]; this.menus = response.data.menus; this.childDataLoaded: true, // <-- here }) .catch(function (error) { console.log('error', error); }); } }, } </script>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda