मैं इस के 15 ट्यूटोरियल ReactJS चरण करने के लिए कोशिश कर रहा हूँ प्रतिक्रिया: React.js Introduction For People Who Know Just Enough jQuery To Get By"किसी मौजूदा राज्य संक्रमण के दौरान अद्यतन नहीं कर सकते" में त्रुटि
लेखक की सिफारिश के बाद:
overflowAlert: function() {
if (this.remainingCharacters() < 0) {
return (
<div className="alert alert-warning">
<strong>Oops! Too Long:</strong>
</div>
);
} else {
return "";
}
},
render() {
...
{ this.overflowAlert() }
...
}
मैं कर रहा करने की कोशिश की निम्नलिखित (जो मेरे लिए ठीक लग रहा है):
// initialized "warnText" inside "getInitialState"
overflowAlert: function() {
if (this.remainingCharacters() < 0) {
this.setState({ warnText: "Oops! Too Long:" });
} else {
this.setState({ warnText: "" });
}
},
render() {
...
{ this.overflowAlert() }
<div>{this.state.warnText}</div>
...
}
और मैं क्रोम देव उपकरण में कंसोल में निम्न त्रुटि प्राप्त:
मौजूदा राज्य संक्रमण (जैसे
render
या किसी अन्य घटक के कन्स्ट्रक्टर के भीतर) अपडेट नहीं किया जा सकता है। प्रस्तुत करने के तरीके प्रोप और राज्य का एक शुद्ध कार्य होना चाहिए; कन्स्ट्रक्टर साइड इफेक्ट्स एंटी-पैटर्न हैं, लेकिन उन्हेंcomponentWillMount
पर ले जाया जा सकता है।
यहां एक JSbin demo है। मेरा समाधान क्यों काम नहीं करेगा और इस त्रुटि का क्या अर्थ है?
इसके बारे में सोचें: राज्य को अद्यतन होने पर एक घटक को फिर से प्रस्तुत किया जाता है, इसलिए यदि आप रेंडर विधि में स्थिति अपडेट करते हैं, तो यह एक अनंत लूप होगा। आप यहां क्या करने की कोशिश कर रहे हैं? जब भी कोई टेक्स्ट या कुछ इनपुट करता है तो राज्य को अपडेट करें। – Li357
@AndrewLi ल्यूसिड उत्तर। आगे बढ़ें और इसे एक उत्तर के रूप में दर्ज करें और मैं इसे सही चिह्नित करूंगा। मैं यहां क्या हासिल करने की कोशिश कर रहा हूं: ठीक है, मैं इसे समाधान के बिना अपना रास्ता तय करने की कोशिश कर रहा था, और यही वह था जो मैं आया था। –