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

338
Vistas
Mostrar una información solo si existe con $auth y vuejs (nuxt)

Quiero mostrar un dato al usuario solo si existe (entonces si se identifica) pero aparece un error: no se pueden leer las propiedades de indefinido (leyendo 'correo electrónico') No entiendo porque he usado la propiedad v-if para evitar ese error aquí

 <template> <div> <Navbar/> <p v-if="this.$auth.$storage.state.user.email"> {{ this.$auth.$storage.state.user.email }} </p> </div> </template>
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

La variable this.$auth.$storage.state.user es nula.

Como el v-if está en el objeto de email o en el user , arroja un error antes de verificar la variable.

Entonces, te sugiero que uses este código:

 <template> <div> <p v-if="this.$auth.$storage.state.user">{{ this.$auth.$storage.state.user.email }}</p> </div> </template>
about 4 years ago · Juan Pablo Isaza Denunciar

0

En realidad, si considera los casos de prueba, será así this.$auth será válido, pero es posible que no contenga $storage , por lo que podría arrojar un error que dice No se puede leer state de indefinido. Lo mismo puede aplicarse cuando profundiza en la comprobación de atributos. Entonces, para hacer este tipo de verificación en cada etapa, puede seguir el siguiente enfoque

 <template> <div> <p v-if="$auth?.$storage?.state?.user">{{ $auth.$storage.state.user.email }}</p> </div> </template>

Para que el encadenamiento opcional funcione dentro v-if , instale @babel/plugin-proposal-opcional-chaining y agréguelo a los complementos de configuración de babel como @babel/plugin-proposal-opcional-chaining

about 4 years ago · Juan Pablo Isaza Denunciar

0

Una solución simple que puede funcionar fuera de la caja sería

 <template> <div> <Navbar /> <p v-if="isEmailFilled"> {{ $auth.$storage.state.user.email }} </p> </div> </template> <script> export default { computed: { isEmailFilled() { return this.$auth?.$storage?.state?.user?.email }, }, } </script>
about 4 years ago · Juan Pablo Isaza Denunciar
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