Zoeken…


Invoering

Wanneer u probeert een waarde van een item in te stellen op een bepaalde index van een array die is geïnitialiseerd in de gegevensoptie, kan vue de wijziging niet detecteren en wordt geen update van de status geactiveerd. Om dit voorbehoud te overwinnen, moet je de Vue. $ Set van vue gebruiken of de methode Array.prototype.splice gebruiken

Met behulp van. $ Set

In uw methode of een andere levenscyclushaak die het matrixitem op bepaalde index wijzigt

new Vue({
    el: '#app',
    data:{
        myArr : ['apple', 'orange', 'banana', 'grapes']
    },
    methods:{
        changeArrayItem: function(){
            //this will not work
            //myArr[2] = 'strawberry';
            
            //Vue.$set(array, index, newValue)
            this.$set(this.myArr, 2, 'strawberry');
        }
    }
}) 

Hier is de link naar de viool

Array.prototype.splice gebruiken

U kunt dezelfde wijziging uitvoeren in plaats van Vue.$set gebruiken met de splice() van het array-prototype splice()

new Vue({
    el: '#app',
    data:{
        myArr : ['apple', 'orange', 'banana', 'grapes']
    },
    methods:{
        changeArrayItem: function(){
            //this will not work
            //myArr[2] = 'strawberry';
            
            //Array.splice(index, 1, newValue)
            this.myArr.splice(2, 1, 'strawberry');
        }
    }
}) 

Voor geneste array

Als yoi een array heeft genest, kan het volgende worden gedaan

new Vue({
    el: '#app',
    data:{
        myArr : [
            ['apple', 'banana'],
            ['grapes', 'orange']
        ]
    },
    methods:{
        changeArrayItem: function(){
            this.$set(this.myArr[1], 1, 'strawberry');
        }
    }
})

Hier is de link naar de jsfiddle

Array van objecten die arrays bevatten

new Vue({
    el: '#app',
    data:{
        myArr : [
            {
                name: 'object-1',
                nestedArr: ['apple', 'banana']
            },
            {
                name: 'object-2',
                nestedArr: ['grapes', 'orange']
            }
        ]
    },
    methods:{
        changeArrayItem: function(){
            this.$set(this.myArr[1].nestedArr, 1, 'strawberry');
        }
    }
}) 

Hier is de link naar de viool



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow