एक प्रतिक्रिया वर्ग पर मैं कुछ इस तरह लिखूंगा
class Myclass extends React.Component {
handleUpdate = info => {
//do the update
}
render() {
return (
<SomeMarkup>
<SomeComponent onUpdate={this.handleUpdate} />
</SomeMarkup>
)
}
}
यदि किसी फ़ंक्शन का उपयोग कर रहा हूं तो मैं केवल निम्नलिखित लिख सकता हूं:
function MyFunction() {
function handleUpdate(info) {
// do the update
}
return (
<SomeMarkup>
<SomeComponent onUpdate={handleUpdate} />
</SomeMarkup>
)
}
लेकिन इसके साथ ही मैं हर रेंडर पर एक फंक्शन को फिर से शुरू करूंगा। क्या कोई ऐसी चाल है जो रेंडरर्स के बीच हैंडलर फ़ंक्शन को याद रखेगी? या क्या मुझे हैंडलर को रेंडर स्कोप से बाहर ले जाना चाहिए? (इसे रेंडर स्कोप से बाहर ले जाने के लिए मुझे स्पष्ट रूप से अधिक पैरामीटर पास करने की आवश्यकता है क्योंकि मेरे पास सीधे फ़ंक्शन स्कोप तक पहुंच नहीं है।)
1 उत्तर
ठीक यही परिदृश्य है जिसके लिए useCallback
है। फ़ंक्शन अभी भी useCallback
के साथ हर बार घोषित हो जाता है, लेकिन लौटाए गए फ़ंक्शन को याद किया जाता है ताकि अगर इसे बच्चों के लिए एक संपत्ति के रूप में पारित किया जाता है, तो बच्चों को एक सुसंगत फ़ंक्शन प्राप्त होगा जब तक कि निर्भरता बदलने के कारण इसे बदलना न पड़े।
कृपया मेरा हालिया संबंधित उत्तर यहां देखें जो विस्तार से दर्शाता है कि useCallback
कैसे काम करता है: React Hooks useCallback के सरल उदाहरण के साथ समस्या
यहां एक और संबंधित उत्तर दिया गया है: -रेंडर
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
reactjs
प्रतिक्रिया उपयोगकर्ता इंटरफ़ेस के निर्माण के लिए एक जावास्क्रिप्ट पुस्तकालय है। यह एक घोषणात्मक, घटक-आधारित प्रतिमान का उपयोग करता है और इसका उद्देश्य कुशल और लचीला दोनों है।