vue2组件:使用方法强制更新计算的propriety

时间:2017-08-16 10:00:52

标签: vuejs2 splice computed-properties

我试图使用组件内部的方法更新计算的适当性, 这里的例子是:

props: ['selezionati'],
computed:{
    listaSelezionati() {
        return this.selezionati
    }
},
methods:{
    rimuoviSotto : function(index,indexparent){
        var obj = JSON.stringify(this.listaSelezionati[0][indexparent].sottoservizio[index]);
        alert(obj);
        var mod = this.listaSelezionati[0][indexparent].sottoservizio.splice(index,1);
        vue.set(this.listaSelezionati,mod);
    }
}

基本上我想拼接一个子数组嵌套数据,

obj var只是调试,并触发正确的值,我试图应用没有var的数组拼接,它似乎工作,但不要将修改应用到组件视图,所以我试图使用vue.set但控制台返回我"不是函数"。

基本上我该怎么做才能更新计算出的适当性?

谢谢

2 个答案:

答案 0 :(得分:0)

计算属性是依赖属性。他们更新其依赖的data属性,这些属性是被动更新。

因此,将prop的vaue指定给数据属性

props: ['selezionati'],
data((){
    return{
        listaSelezionati: this.selezionati
    }
},
methods:{
    rimuoviSotto : function(index,indexparent){
        var obj = JSON.stringify(this.listaSelezionati[0][indexparent].sottoservizio[index]);
        alert(obj);
        var mod = this.listaSelezionati[0][indexparent].sottoservizio.splice(index,1);
        this.listaSelezionati = mod;
    }
} 

如果您要更新要从父级恢复的道具,则应使用events作为props are one-way data flow

答案 1 :(得分:0)

我解决了使用$ forceUpdate(); 基本上在方法中我必须强制计算出的适当性