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

373
Views
¿Por qué no puedo acceder a los datos () usando 'esto' directamente?

Trabajo en la aplicación Vue2. Lo que he notado es que a veces no puedo acceder a los elementos almacenados en data() usando this directamente en mi código. Lo que quiero decir con eso es que a veces necesito asignar this... a una variable dentro de un método para que funcione en lugar de simplemente referirme al elemento de datos por this .

Creé un ejemplo reproducible aquí: https://codesandbox.io/s/vue-2-playground-vuex-drag-and-snap-to-tiles-this-usage-trhd72?file=/src/components/ZimModel.vue

Eche un vistazo al método addRegals() . this.size en todas partes en este método, pero lo que obtuve en la consola es este error:

[Advertencia de Vue]: error en la devolución de llamada para el observador "regalsTotalNumber": "Error de tipo: esto no está definido"

No entiendo por qué hay un error si simplemente me refiero al elemento data() usando this . Para que mi código funcione, debe descomentar el código en este método (y comentar las líneas que no funcionan). Todo comienza con la asignación de elementos de data a la variable:

 var size = this.size;

No entiendo por qué necesito hacer una variable y asignarle this.size en lugar de usar this explícitamente en mi método. Misma situación con var tiles = this.thetiles en el mismo método (también necesito asignarlo a var para que funcione en este método).

El método addRegals se activa en el watcher . Tal vez aquí hay un problema?

PD. Escriba '120' como largo, '55' como ancho en los campos de entrada (espere unos segundos para mostrar la cuadrícula en una pantalla), luego escriba algún número en el campo 'Número de Regals'.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Ha definido una función local llamada getPos dentro del método addRegals . El único problema es que getPos no comparte this con addRegals . Sin embargo, cuando declara la variable, está disponible en el cierre getPos .

La solución sería hacer de getPos una función lambda local o convertirla en un método.

Puede leer más sobre esto en Javascript aquí: https://www.freecodecamp.org/news/the-complete-guide-to-this-in-javascript/ .

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!