मैं सर्वर प्रतिक्रिया पर रिकॉर्ड आधार को अपडेट करना चाहता हूं और पूरी सूची लाए बिना डेटा तालिका को रीफ्रेश करना चाहता हूं। मुझे एक समाधान मिला लेकिन समझ नहीं आया कि this.items[this.editedIndex] = payload.data !ठीक है और **this.items.splice(this.editedIndex, 1, payload.data )** ठीक है।

save() {
      fetch(this.api + "/" + this.editedItem.id, {
          method: "PUT",
          body: JSON.stringify(this.editedItem),
          headers: {
            "content-type": "application/json"
          }
        })
         .then(payload => payload.json())
         .then(payload => {
            this.items.splice(this.editedIndex, 1, payload.data) // THIS WORKS!!
            //this.items[this.editedIndex] = payload.data // THIS DOESN'T... WHY?
          })
          .catch()
      }
2
Sébastien Denis 3 अप्रैल 2020, 19:14

1 उत्तर

सबसे बढ़िया उत्तर

Vue किसी सरणी के मामले में किसी अनुक्रमणिका को सीधे अपडेट करने का पता नहीं लगा सकता है इसलिए Vue.set विधि या इसके उपनाम $set विधि का उपयोग करें।

this.$set(this.items, this.editedIndex, payload.data)

देखें : डिटेक्शन कैविएट बदलें

1
Pranav C Balan 3 अप्रैल 2020, 16:34