javascript - 无法在vuejs中的数据方法中访问 Prop 值

标签 javascript vue.js vuejs2

我有代码(vuejs2)-

Vue.component('competetion-list', {
  template: `<div>{{totalCompetetions}}</div>`,
  props: ['values'],
  data: function () {
    return { totalCompetetions: this.values.length}
  }
})

页面上没有打印任何内容,但如果我将 template 值更改为

template: `<div>{{this.values.length}}</div>`

它打印 15。我做错了什么以及如何将 props 传递给 data

非常感谢任何帮助。

最佳答案

我无法通过以下方式将 Prop values 分配给数据 totalCompetetions -

data: function () {
    return { totalCompetetions: this.values.length}
  } 


但我能够使用 watchcomputedmethods 属性来完成。

具有watch属性-

  watch: {
    values: function(){
      this.totalCompetitions = this.values;
    }
  }

具有computed属性-

 computed:{
    competition:{
      get: function(){
        return this.values.length;
      }
    }

带有methods属性-

 methods:{
    competitionn: function(){
      return this.values.length;
    }
  }


但是对于 computedmethods 属性,我需要按以下方式设置 totalCompetetions -

对于计算 -

template: `<div><p>{{totalCompetitions = competition}}</p></div>` //without parenthesis

对于方法 -

template: `<div><p>{{totalCompetitions = competition()}}</p></div>` //with parenthesis

关于javascript - 无法在vuejs中的数据方法中访问 Prop 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42801761/

相关文章:

javascript - Superfish sf-js-enabled 似乎不起作用

javascript - 插入带有液体对象的 div 并使用 jQuery 获取值

javascript - Vue项目中DOM元素变成Null

javascript - CSS 动画仅在首次创建时触发

javascript - 项目 Controller 上的 Emberjs CollectionView 操作

javascript - 如果 div 元素为空则隐藏它 (ASP.NET MVC)

vue.js - 将vuejs中的大括号更改为其他内容

css - bootstrap-vue 改变 <b-modal> 的位置

javascript - Vue使用输入修改图表

vue.js - 对于 Vuex Store 中的每个项目,分配一个分数(基于计算),然后按分数排序