Utilisez la flèche de la fonction en vue calculées ne fonctionne pas

Je suis à l'apprentissage de Vue et face à un problème lors de l'utilisation de la flèche en fonction calculée de la propriété.

Mon code d'origine fonctionne très bien (Voir extrait ci-dessous).

JS:

new Vue({
  el: '#app',
  data: {
    turnRed: false,
    turnGreen: false,
    turnBlue: false
  },
  computed:{
  	switchRed: function () {
    	return {red: this.turnRed}
    },
    switchGreen: function () {
    	return {green: this.turnGreen}
    },
    switchBlue: function () {
    	return {blue: this.turnBlue}
    }
  }
});

CSS:

.demo{
  width: 100px;
  height: 100px;
  background-color: gray;
  display: inline-block;
  margin: 10px;
}
.red{
  background-color: red;
}
.green{
  background-color: green;
}
.blue{
  background-color: blue;
}

HTML:

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.4/vue.js"></script>
<div id="app">
  <div class="demo" @click="turnRed = !turnRed" :class="switchRed"></div>
  <div class="demo" @click="turnGreen = !turnGreen" :class="switchGreen"></div>
  <div class="demo" @click="turnBlue = !turnBlue" :class="switchBlue"></div>
</div>

Cependant, après que j'ai changer de méthodes dans la propriété calculée, la couleur ne changera pas (bien que le turnRed valeur encore basculer entre le vrai et le faux avec succès).

C'est mon code:

computed:{
    switchRed: () => {
        return {red: this.turnRed}
    },
    switchGreen: () => {
        return {green: this.turnGreen}
    },
    switchBlue: () => {
        return {blue: this.turnBlue}
    }
}

Dois-je utiliser la mauvaise syntaxe ?

  • jetez un oeil à ma réponse. J'ai notamment travaillé à la ciselée.
  • la flèche de la fonction à modifier la portée de cette à son parent
InformationsquelleAutor PJCHENder | 2017-03-23