Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
¿Cómo acceder a una propiedad raíz de vue que se ha cargado en el gancho de vida creado?

Mi aplicación es una aplicación frontal de Vue 2 que carga un archivo de configuración, ya que es una interfaz genérica y cada cliente tiene su propio archivo de configuración. La configuración es un archivo Yaml que se carga cuando se inicia la aplicación. El archivo de configuración tiene propiedades como:

 urlBtn: https://www.youtube.com/

Este es mi main.js :

 import Vue from "vue"; import App from "./App.vue"; import router from "./router"; import store from "./store"; import axios from "axios"; import Vuelidate from "vuelidate"; import yaml from "js-yaml"; import fs from "fs"; import { BootstrapVue } from "bootstrap-vue"; import { BIcon, BIconChevronDoubleDown, BIconChevronDoubleUp, BIconEyeFill, BIconEyeSlashFill } from "bootstrap-vue"; import "bootstrap/dist/css/bootstrap.css"; import "bootstrap-vue/dist/bootstrap-vue.css"; Vue.use(Vuelidate); Vue.use(BootstrapVue); Vue.component("BIcon", BIcon); Vue.component("BIconChevronDoubleDown", BIconChevronDoubleDown); Vue.component("BIconChevronDoubleUp", BIconChevronDoubleUp); Vue.component("BIconEyeFill", BIconEyeFill); Vue.component("BIconEyeSlashFill", BIconEyeSlashFill); Vue.prototype.$axios = axios; Vue.config.productionTip = false; export const app = new Vue({ data() { return { ebaConfig: null, publicPath: process.env.BASE_URL }; }, methods: { async loadEbaConfig() { const config = await axios.get(`${this.publicPath}config.yaml`); const doc = yaml.load(config.data); this.ebaConfig = doc; } }, router, store, created() { this.loadEbaConfig(); }, render: h => h(App) }).$mount("#app");

Cuando intento acceder a la propiedad ebaConfig en el gancho de vida mounted de otro componente, es nulo. Ejemplo:

 mounted() { if (this.$root.ebaConfig.urlBtn.trim()) { this.showCecomaWebBtn = true; } }

En el ejemplo anterior, me sale el error:

 [Vue warn]: Error in mounted hook: "TypeError: Cannot read properties of null (reading 'urlBtn')" found in ---> <App> at src/App.vue <root>

No entiendo por qué sucede ya que la carga de la propiedad se ejecuta en el ciclo de vida created . Por lo tanto, debe estar disponible para los demás componentes en el ciclo de vida mounted . ¿Cómo puedo solucionar eso? ¿Qué estoy haciendo mal?

Nota: El archivo de configuración es un archivo yaml válido ya que todo funciona correctamente cuando uso esa propiedad de manera normal, es decir, fuera de los ciclos de vida. Parece que, a pesar de estar en el ciclo de vida created , los datos se cargan al final de la carga completa de la aplicación.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda