मैं कॉफीस्क्रिप्ट में कोड लिख रहा हूं क्योंकि मैं इसके साथ प्रतिक्रिया लिख रहा हूं।
यहां बुनियादी संरचना है।ReactJS: बाल घटक के रेफरी तक कैसे पहुंचे?
{ div, input } = React.DOM
Outer = React.createClass
render: ->
div { id: 'myApp' },
Inner()
Inner = React.createClass
render: ->
input { id: 'myInput', ref: 'myInput' }
मैं जो एक शॉर्टकट दबाकर शुरू हो रहा है मेरी बाहरी वर्ग पर एक toggle
विधि है। यह मेरे ऐप की दृश्यता को टॉगल करता है।
जब मेरे एप्लिकेशन दिखाई को छिपे हुए से चालू किए जाने पर, मैं इनपुट पर ध्यान केंद्रित करना चाहते हैं।
Outer = React.createClass
render: ->
......
hide: ->
@setState { visible: no }
show: ->
@setState { visible: yes }
$('#myInput').focus() # jQuery
# I want to do something like
# @refs.myInput.getDOMNode().focus()
# But @refs here is empty, it doesn't contain the refs in Inner
toggle: ->
if @state.visible
@hide()
else
@show()
मैं इस तो क्या करते हो:
अब टॉगल तरीकों को और अधिक या इसके जैसे नहीं लग रही है?
ऑटोफोकस मेरे लिए काम नहीं करता। असल में मैंने अभी 'घटकडिडअपडेट' के बारे में सोचा था और आपने जो कुछ सुझाव दिया था उसके समान कुछ करने की कोशिश की और यह काम किया। लेकिन मैं वास्तव में जानना चाहता हूं कि बाल घटकों के रेफरी तक पहुंचने का कोई आसान तरीका है या नहीं। रिएक्ट डॉक पर रेफरी उदाहरण शीर्ष घटक के अंदर एक इनपुट डालता है, लेकिन हकीकत में इनपुट आमतौर पर उप-घटकों के भीतर घोंसला होता है। – octref
रेफरी केवल उस घटक में प्रयोग योग्य हैं जहां उन्हें परिभाषित किया गया है। अगर वे किसी भी बच्चे के घटक द्वारा सुलभ थे, तो आपको एक रेफरी के लिए अपना नाम मानना होगा, किसी भी अन्य रेफरी के साथ संघर्ष नहीं करेगा। यदि आप रेफरी को हटाना चाहते हैं, या इसे बदलना चाहते हैं तो आपको हर दूसरे घटक को भी देखना होगा। इन मान्यताओं और जगह पर देखकर सबसे अच्छी तरह से बचाया जाता है। – FakeRainBrigand