Vue распространять объект как вычисленные свойства - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть массив объектов с именем config и свойство currentIdx в моем компоненте.Затем я обнаружил, что мне нужно это сделать:

computed: {
    textStyle: function() {
        return this.config[this.currentIdx].textStyle;
    },
    text: function() {
        return this.config[this.currentIdx].text;
    },
    key: function() {
        return this.config[this.currentIdx].key;
    }
}

Я попытался заменить все функции на:

computed: {
    ...this.config[this.currentIdx]
}

Он прошел компиляцию, но я получил ошибку в консоли браузера.Я думаю, проблема в том, что computed требует функций, но синтаксис распространения (...) возвращает объекты.Итак, мой вопрос: Есть ли способ уменьшить повторение в этом случае?

Спасибо!

1 Ответ

0 голосов
/ 27 декабря 2018

Вычисленные значения могут возвращать объекты, они просто должны быть возвращены функцией.Дайте мне знать, если это не то, что вы намеревались, и я посмотрю, что я могу сделать, чтобы помочь!

let vm = new Vue({
  el : "#root",
  data : {
    current : 0,
    arrs : [
      {
        color : "background-color: blue;",
        text : "Dabodee Dabodai"
      },
      {
        color : "background-color: red;",
        text : "Angry"
      },
      {
        color : "background-color: green;",
        text : "See it works!"
      }
    ]
  },
  computed : {
    currentObject : function() {
      return this.arrs[this.current];
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="root">
  <input type="number" v-model="current" min="0" max="2">
  <p :style="currentObject.color">
    {{ currentObject.text }}
  </p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...