Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

340
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!