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

212
Vistas
Función dentro del componente que arroja un mensaje de error

Tengo un componente con dos funciones definidas en la sección de métodos. Cada uno hace una llamada API para algunos datos JSON.

La segunda función depende de que la primera ya se haya ejecutado (necesito datos de la primera para informar a la segunda). Mi HTML llama a la función uno y la representa. Dentro de ese contenido recién renderizado hay una llamada v-on:click que llama a la segunda función y le pasa un valor que se creó a partir de la primera función.

El código es el siguiente:

HTML

 <div v-for="team in hockeyDataList.teams" :key="team.id"> <!-- Loop through the teams array --> <img :src="`https://www-league.nhlstatic.com/images/logos/teams-current-primary-dark/${team.id}.svg`" class="img-round team-logo"/> <h1>{{ team.name }}</h1> <div>Division: {{ team.division.name }} <br/> Conference: {{ team.conference.name }}</div> <h2>Roster</h2> <div class="player-cont"> <div v-on:click="getPlayerData(player)" v-for="player in team.roster.roster" :key="team.id + '-' + player.person.id" class="col" :id="player.person.id"> <h3>{{ player.person.fullName }}</h3> <img :src="`https://cms.nhl.bamgrid.com/images/headshots/current/168x168/${player.person.id}.jpg`" class="img-round"/> <div> Number: {{ player.jerseyNumber }} | Position: {{ player.position.abbreviation }} </div> </div> </div> </div>

VUE

 data() { return { hockeyDataList: [], playerDataList: [] }, methods: { getHockeyData(teams) { axios.get("https://statsapi.web.nhl.com/api/v1/teams/" + teams.id + "?expand=team.roster").then(response => (this.hockeyDataList = response.data)); } }, getPlayerData(player) { axios.get("https://statsapi.web.nhl.com/api/v1/people/" + player.person.id + "/stats?stats=yearByYear").then(response => (this.playerDataList = response.data)); } };

El error que se esta produciendo cuando disparo la segunda llamada es:

 Property or method "getPlayerData" is not defined on the instance but referenced during render

Soy nuevo en Vue y no estoy seguro de qué está tratando de corregir este error.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Escribió su método getPlayerData fuera del bloque de métodos , vuelva a moverlo.

 methods: { getHockeyData(teams) { axios.get("https://statsapi.web.nhl.com/api/v1/teams/" + teams.id + "?expand=team.roster").then(response => (this.hockeyDataList = response.data)); }, getPlayerData(player) { axios.get("https://statsapi.web.nhl.com/api/v1/people/" + player.person.id + "/stats?stats=yearByYear").then(response => (this.playerDataList = response.data)); } },

También los datos y los métodos son 2 bloques separados como

 data() { return{}; }, methods:{ }, computed:{ }
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