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

क्यों रिएक्ट का `सेटस्टेट` अतुल्यकालिक दिखाई देता है, और मैं कैसे सुनिश्चित कर सकता हूं कि अद्यतन स्थिति तुरंत परिलक्षित हो जाए?

2025-02-21 को पोस्ट किया गया
ब्राउज़ करें:276

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

Why Does React's `setState` Appear Asynchronous, and How Can I Ensure Updated State is Immediately Reflected?
क्लास बोर्डडैड React.component का विस्तार करता है { कंस्ट्रक्टर (प्रॉप्स) { सुपर (प्रॉप्स); this.state = { बोर्डडैडमोडलशो: फाल्स }; this.openaddboardmodal = this.openaddboardmodal.bind (यह); } OpenAdddboardModal () { this.setstate ({बोर्डडैडमोडलशो: true}); कंसोल.लॉग (this.state.boardaddmodalshow); } … हालाँकि, कंसोल आउटपुट से पता चलता है कि सेटस्टेट कॉल के बावजूद मान गलत है। इसे बुलाए जाने के बाद, यूआई तब तक अप्रभावित रहता है जब तक कि रिएक्ट शेड्यूल फिर से रेंडर नहीं करता है। कंसोल.लॉग स्टेटमेंट री-रेंडर होने से पहले निष्पादित होता है, जिसके परिणामस्वरूप पुरानी स्थिति का मुद्रित होता है। हम एक कॉलबैक फ़ंक्शन का उपयोग सेटस्टेट करने के लिए एक तर्क के रूप में कर सकते हैं। राज्य को अपडेट किए जाने के बाद कॉलबैक निष्पादित किया जाता है और फिर से रेंडर हुआ है:

this.setstate ({बोर्डडमोडलशो: true}, फ़ंक्शन () {{ कंसोल.लॉग (this.state.boardaddmodalshow); }); }

इस मामले में, कंसोल.लॉग स्टेटमेंट को राज्य के अद्यतन किए जाने के बाद निष्पादित किया जाएगा, सही ढंग से बोर्डडैडमोडलशो के नए मूल्य को सही के रूप में दिखाया जाएगा। ] चूंकि राज्य अपडेट री-रेंडरर्स को ट्रिगर करता है, इसलिए उन्हें सिंक्रोनस बनाने से ब्राउज़र की गैर-जिम्मेदारी हो सकती है। बैचिंग सेटस्टेट कॉल अनावश्यक पुन: रेंडरों को कम करके और उपयोगकर्ता अनुभव को बढ़ाकर प्रदर्शन में सुधार करता है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3