computed数据改变了却没有更新到视图中

使用计算属性computed,监控数据,实现表头的切换,现在的问题是,计算属性中的数据更新了,却没有更新到视图中

//data中定义好的3个表头
data(){
    return {
        columns:[
          {text:'总', dataIndex:'total'},
        ],
        yColumns:[
          {text:'年', dataIndex:'year'},
        ],
        mColumns:[
          {text:'月', dataIndex:'month'},
        ],
    }
}

//定义的计算属性
    computed:{
      columnsData(){
        console.log(this.columns.filter(function (v) {
          if (v.text !== undefined) {
            return v
          }
        }));
        return this.columns.filter(function(v){
          if(v.text !== undefined){
            return v
          }
        })
      }
    },
    
    methods:{
    //      按名称切换表头
      changeData(value){
        if(!value){
          alert(0);
          return;
        }
        else if(value === '当月'){
          alert(1)
          this.columns=this.mColumns
        }else if(value === '当年'){
          alert(3)
          this.columns=this.yColumns;
        }
      },
    }
阅读 17.3k
3 个回答

麻烦贴一段,你视图的代码吧

虽然不能看出什么,但是看起来更像是Array.prototype.filter使用的有点不当啊,至少这样看起来正常点:

this.columns.filter(function (v) {
            return v.text !== undefined;
        })
新手上路,请多包涵

https://cn.vuejs.org/v2/guide...

需要仔细看一下computed的文档。
他会对属性进行缓存,只有在外部的属性值改变时才会发生改变。

需要另外写一个set函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题