मैं एक बड़ी आवेदन में इस त्रुटि में चल रहे हो रहे हैं (लेकिन मैं वास्तव में यकीन है कि जहां नहीं कर रहा हूँ):क्यों इस त्रुटि करता मौजूद हैं: "अपरिवर्तनीय उल्लंघन: एक मौजूदा राज्य संक्रमण के दौरान अद्यतन नहीं कर सकते"
Uncaught Error: Invariant Violation: setState(...): Cannot update during an existing state transition (such as within
render
). Render methods should be a pure function of props and state.
मुझे संदेह है कि यह setState
setTimeout
या setInterval
के अंदर उपयोग करने का परिणाम हो सकता है।
जो मुझे मेरे असली प्रश्न पर ले जाता है: यह त्रुटि क्यों मौजूद है? क्या कुछ वैचारिक कारण हैं जो मुझे याद आ रहा है क्यों ReactJS सिर्फ राज्य और प्रोप में बदलाव नहीं करता है? मुझे लगता है कि कोई कारण है, तो मुझे आवेदन जटिलता और/या दौड़ की स्थिति से परहेज करना है ...
मेरा अगला प्रश्न तब होगा: प्रतिक्रिया के बाहर एक घटक को अद्यतन करने का सही तरीका क्या है (उदाहरण के लिए कुछ एसिंक्रोनस घटना के दौरान) ताकि यह त्रुटि न हो?
संपादित करें:
कुछ इस समस्या की आगे की खुदाई बाद, ऐसा लगता अपराधी वास्तव में मैं उपयोग कर रहा हूँ (ElectronJS, औपचारिक रूप से एटम शैल) अंतर्निहित मंच है। असल में, इलेक्ट्रॉन जेएस क्रोमियम और नोडजेएस को एक साथ जोड़ता है। मैं कुछ एसिंक्रोनस करने के लिए एक नोडजेएस एपीआई का उपयोग कर रहा था और यह तब समाप्त होता है जब यह समाप्त हो जाता है, तो इलेक्ट्रॉन जीएस बस कॉल स्टैक पर वापस लौट आएगा, जहां यह छोड़ा गया था, इवेंट लूप को पूरी तरह से छोड़कर और इस प्रकार प्रतिक्रिया के साथ दौड़ की स्थिति पैदा कर रहा था।
प्रतिक्रिया, अगर निष्क्रिय, बैच 'सेटस्टेट' कॉल। –
हाय जेम्सस्ल, मुझे रिएक्ट + इलेक्ट्रॉन के साथ एक ही समस्या मिली, और त्रुटि दिखती रहती है। ऐसा लगता है कि यह ऐप तोड़ नहीं देगा लेकिन अभी भी काफी परेशान है। क्या आप इसे ठीक करने का कोई तरीका समझ चुके हैं? – fraserxv
'setImmediate (// फ़ंक्शन जो सेटस्टेट को कॉल कर सकता है) के साथ काम कर रहा है' – fraserxv