"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > `सेटस्टेट` का उपयोग करके राज्य में नेस्टेड ऑब्जेक्ट को कैसे अपडेट करें?

`सेटस्टेट` का उपयोग करके राज्य में नेस्टेड ऑब्जेक्ट को कैसे अपडेट करें?

2024-11-17 को प्रकाशित
ब्राउज़ करें:796

How to Update a Nested Object in State Using `setState`?

setState का उपयोग करके राज्य में state.item[1] को अपडेट करें

इस स्थिति में, आप किसी ऑब्जेक्ट के भीतर किसी ऑब्जेक्ट को अपडेट करने का प्रयास कर रहे हैं सेटस्टेट का उपयोग करके अपने राज्य में। राज्य को सही ढंग से अद्यतन करने के लिए, आपको संपूर्ण राज्य ऑब्जेक्ट की एक प्रतिलिपि बनाने, प्रतिलिपि को संशोधित करने और फिर राज्य को अद्यतन प्रतिलिपि में सेट करने की आवश्यकता है।

यहां बताया गया है कि आप कैसे राज्य.आइटम[1] का उपयोग करके अद्यतन कर सकते हैं सेटस्टेट:

// 1. Make a shallow copy of the items
let items = [...this.state.items];

// 2. Make a shallow copy of the item you want to mutate
let item = {...items[1]};

// 3. Replace the property you're interested in
item.name = 'newName';

// 4. Put it back into our array. N.B. we *are* mutating the array here, 
//    but that's why we made a copy first
items[1] = item;

// 5. Set the state to our new copy
this.setState({items});

यदि आप चाहें तो चरण 2 और 3 को जोड़ सकते हैं:

let item = {
    ...items[1],
    name: 'newName'
}

या आप पूरी चीज़ एक पंक्ति में कर सकते हैं:

this.setState(({items}) => ({
    items: [
        ...items.slice(0,1),
        {
            ...items[1],
            name: 'newName',
        },
        ...items.slice(2)
    ]
}));

नोट: इन उदाहरणों में, हमने मान लिया कि आइटम एक सरणी थी। यदि आइटम एक ऑब्जेक्ट था, तो आप ऑब्जेक्ट गुणों के समान अपडेट करेंगे।

याद रखें, सेटस्टेट का उपयोग करते समय, आपको इसे संशोधित करने से पहले हमेशा पिछली स्थिति की एक प्रतिलिपि बनानी चाहिए ताकि यह सुनिश्चित हो सके कि आप गलती से उत्परिवर्तन नहीं करते हैं मूल स्थिति वस्तु।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3