प्रतिक्रिया प्रलेखन में वे कहते हैं:क्यों रेफ = 'स्ट्रिंग' "विरासत" है?
प्रतिक्रिया भी किसी भी घटक पर एक रेफरी आधार के रूप में एक स्ट्रिंग (एक कॉलबैक के बजाय) का उपयोग करने का समर्थन करता है, हालांकि इस दृष्टिकोण ज्यादातर इस बिंदु पर विरासत है।
https://facebook.github.io/react/docs/more-about-refs.html
निम्न उदाहरण लें:
class Foo extends Component {
render() {
return <input onClick={() => this.action()} ref={input => this._input = input} />;
}
action() {
console.log(this._input.value);
}
}
क्यों मैं इस पसंद करते हैं, बजाय चाहिए:
class Foo extends Component {
render() {
return <input onClick={() => this.action()} ref='input' />;
}
action() {
console.log(this.refs.input.value);
}
}
?
ऐसा लगता है कि यह दूसरा उदाहरण अधिक आसान और आसान है।
क्या जोखिम हैं कि स्ट्रिंग विधि को बहिष्कृत किया जाएगा?
नायब: मैं दस्तावेज में बयान के "आधिकारिक" उत्तर के लिए देख रहा हूँ, मैं व्यक्तिगत वरीयताओं को और इतने पर के बारे में पूछ नहीं कर रहा हूँ।
क्या यह शायद इसके साथ कुछ करना है? https://facebook.github.io/react/blog/2015/02/24/streamlining-react-elements.html#pending-change-the-refs-semantics यानी माता-पिता से रिफ्रेश स्वामित्व को तोड़ना? अन्य लाभ भी हैं, लेकिन मुझे लगता है कि यह शायद उनका प्रारंभिक तर्क था? – ctrlplusb
हम्म, यहां और अधिक पढ़ना: https://github.com/facebook/react/issues/3228#issuecomment-75461381 – ctrlplusb
एक तरफ के रूप में मुझे पहली विधि के साथ एक लिटिंग त्रुटि मिलती है 'तीर फ़ंक्शन असाइनमेंट वापस नहीं करना चाहिए।' – skube