He estado tratando de averiguar cómo hacer esto, pero parece que no puedo hacerlo funcionar. Creé una función que se llama cuando hago clic en un componente usando v-on:click. También estoy tratando de pasar un valor que luego puedo usar para acceder a una matriz particular que viene en forma de datos desde un backend.
Aquí está la función en el componente:
<v-card @click="getContent('topSellers')" >Luego estoy pasando el valor 'topSellers' como una "id" a la función que se está utilizando para acceder a la matriz exacta que estoy buscando:
getContent(id) { this.accordion = this.data.id; console.log("data", id); } En primer lugar, this.data.topSellers funciona. Y estoy viendo que el valor de id es correcto en la consola. Obviamente, esto no funciona porque id actualmente es una cadena, pero no sé cómo solucionar ese problema. ¡Cualquier ayuda sería apreciada!
Necesita this.data[id] en lugar de this.data.id .
Consulte los accesores de propiedad en MDN como referencia.
data[id] accederá a la propiedad de data con el nombre del valor de id , en su caso topSellers . Entonces data.topSellers es equivalente a data["topSellers"]
[] le permite acceder a objetos con variables.
Se recomienda manejar excepciones porque la variable recibida no es segura.
getContent(id) { const accordion = this.data[id] || null; if(accordion){ console.log("data", accordion); this.accordion = accordion; } }