खोज…


परिचय

जब आप डेटा विकल्प में आरंभ किए गए किसी विशेष इंडेक्स पर किसी आइटम का मान सेट करने का प्रयास करते हैं, तो vue परिवर्तन का पता नहीं लगा सकता है और राज्य को अपडेट ट्रिगर नहीं करता है। इस चेतावनी को दूर करने के लिए आपको या तो Vue Vue का उपयोग करना चाहिए। $ set या Array.prototype.splice विधि का उपयोग करें

Vue का उपयोग करना। $ set

आपकी विधि या किसी भी जीवनचक्र हुक में, जो कि पार्टरुअर इंडेक्स में सरणी आइटम को बदलता है

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');
        }
    }
}) 

यहाँ फिडेल का लिंक दिया गया है

Array.prototype.splice का उपयोग करना

आप Arue प्रोटोटाइप के splice() का उपयोग करके Vue.$set बजाय समान परिवर्तन कर सकते हैं

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');
        }
    }
}) 

नेस्टेड सरणी के लिए

यदि योई में नेस्टेड ऐरे है, तो निम्नलिखित किया जा सकता है

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

यहाँ jsfiddle के लिए लिंक है

सरणियों वाली वस्तुओं का सरणी

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');
        }
    }
}) 

यहाँ फिडेल का लिंक दिया गया है



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow