Vue.js:将计算结果分配给创建或挂载的数据属性?

时间:2017-08-16 13:27:02

标签: javascript vue.js

是否可以执行以下操作?

export default {
  props: ['parentArray'],
  data () {
    return {
      computedArray: null
    }
  },
  computed: {
    computedResult: function () {
    var flags = []
    var output = []
    var l = this.parentArray.length
    var i
    for (i = 0; i < l; i++) {
        if (flags[this.parentArray[i].myitem]) continue
        flags[this.parentArray[i].myitem] = true
        var firstfilter = this.parentArray[i].myitem.replace('something', '')
        output.push(firstfilter)
      }
    return output
   }
  },
  mounted () {
    this.computedArray = this.computedResult
  }

当我尝试时,我的数组的结构使它成为数据元素,但没有数据(至少不在vue dev-tools中。计算出的数组正确显示在计算中)

1 个答案:

答案 0 :(得分:0)

通常情况下,意外的结果是因为特定问题的逻辑之外的某些东西。在我的情况下,我的parentArray来自一个axios调用,它是异步的,这意味着它直到组件安装后才到达,因此我的空数组。添加对已加载数据的检查(通过将数据项loaded设置为false,然后在我的axios响应中将其设置为true,最后将v-if="loaded"添加到我的组件中,使其正常工作如预期的那样。

所以上面问题的答案是肯定的,这是可能的(但是在安装之前确保你的父道具数据可用)。