क्या इससे कोई फर्क पड़ता है? मेरा अनुमान है कि कैसे सेटप्रॉप किसी फ़ंक्शन को पास कर सकता है, इसके आधार पर सटीकता बनाए रखने में हाँ है, लेकिन मुझे दस्तावेज़ों में कोई उत्तर नहीं मिल रहा है।

  const [prop, setProp] => useState(value);

  const myFunction = (param) => {
    console.log(param)
  }

  return (
    <div onClick={()=> myFunction(prop)}></div>
  )

बनाम

  const [prop, setProp] => useState(value);

  const myFunction = () => {
    console.log(prop)
  }

  return (
    <div onClick={myFunction}></div>
  )

3
Pavlos Karalis 29 जून 2020, 11:19

2 जवाब

सबसे बढ़िया उत्तर

दोनों कोड उदाहरणों के बीच एक मुख्य अंतर है।

पहले कोड उदाहरण में, प्रत्येक पुन: प्रस्तुत करने पर 2 फ़ंक्शन बनते हैं

  • अनाम फ़ंक्शन onClick प्रोप . को पास किया गया
  • myFunction

जबकि दूसरे कोड उदाहरण में, केवल 1 फ़ंक्शन बनाया जाता है, यानी myFunction

इसके अलावा, कोई अंतर नहीं है क्योंकि घटक के किसी विशेष रेंडर में, prop का मान नहीं बदलेगा। तो इससे कोई फर्क नहीं पड़ता कि आप पास करते हैं या नहीं यह एक तर्क के रूप में है या आप इसे सीधे myFunction के अंदर से एक्सेस करते हैं।

एक साइड नोट के रूप में, आपको राज्य चर के लिए एक अलग नाम चुनना चाहिए क्योंकि यह props ऑब्जेक्ट के साथ भ्रमित हो सकता है।

1
Yousaf 29 जून 2020, 13:06

मेरी राय में दूसरा तरीका बेहतर है। अन्य जो कि यूसुफ ने उल्लेख किया है, कोई प्रदर्शन अंतर नहीं है, लेकिन यह आपके कोड को साफ रखता है। जाहिर है, कभी-कभी आपको अपने फ़ंक्शन या कुछ इस तरह के कुछ पैरामीटर पास करने के लिए पहले दृष्टिकोण का उपयोग करने की आवश्यकता होती है

1
Adrian Pascu 29 जून 2020, 11:30