Pregunta súper simple pero nunca he podido resolverla. Digamos que tenemos algunos datos:
section: { option1: true, option2: true }y en un botón tenemos:
<button @click="toggle(option1)">¿Cómo pego dinámicamente 'option1' arg en algo como esto:
toggle(opp){ console.log(this.section.opp) }Porque actualmente está literalmente buscando this.section.opp, y opp no existe en los datos.
Use this.section[opp] en lugar de this.section.opp ya que opp contiene un valor dinámico y no puede acceder directamente con la notación de punto (.) ya que contiene un valor diferente.
Demostración de trabajo:
new Vue({ el: '#app', data: { section: { option1: true, option2: true }, result: null }, methods: { toggle(opp) { this.result = this.section[opp]; } } }) <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <button @click="toggle('option1')">Click Me</button> <p>Result: {{ result }}</p> </div>