2017-01-01 18 views
7

मैं जब उपयोगकर्ता एक बटन क्लिक करता है अप पॉपिंग एक मॉडल पेज है, यह पूरी तरह से काम कर रहा है:मैं प्रतिक्रिया घटक के रिटर्न फ़ंक्शन में आईआईएफई का उपयोग कैसे कर सकता हूं?

render() { 
    return (
    <div> 
     <section> 
      <button onClick={() => this.refs.simpleDialog.show()}>Open Modal</button> 
     </section> 
     <SkyLight hideOnOverlayClicked ref="simpleDialog" title="Test Modal"> 
      Text that appears inside the modal page 
      <Button onClick={() => this.refs.simpleDialog.hide()} >Got It</Button> 
     </SkyLight> 
    </div> 
)} 
  • लेकिन मेरा लक्ष्य स्वचालित रूप से जब उपयोगकर्ता पहली बार के लिए पृष्ठ खुलता है मोडल खोलने के लिए है।

  • मैं

एक बटन पर क्लिक प्रश्न द्वारा मोडल पेज खोलने के लिए नहीं करना चाहती:

  • मैं एक Iife एक तुरंत-लागू समारोह अभिव्यक्ति का उपयोग कर सकते हैं () जैसे ही उपयोगकर्ता पृष्ठ खोलता है, मोडल खोलने के लिए?

  • मेरा दृष्टिकोण एक बूलियन को सत्य पर सेट करना था। तब मोडल खोलने मान सत्य

लाइब्रेरी मोडल के लिए इस्तेमाल किया जा रहा करने के लिए सेट किया गया है: https://github.com/marcio/react-skylight

उत्तर

4

मुझे लगता है कि आप देख रहे हैं componentDidMount() जीवन चक्र विधि है:

componentDidMount() { 
    this.refs.simpleDialog.show(); 
} 

React docs से:

componentDidMount() तुरंत लागू करने के बाद एक घटक माउंट किया गया है है। प्रारंभिकता जिसके लिए डीओएम नोड्स की आवश्यकता होती है, यहां जाना चाहिए। यदि आपको रिमोट एंडपॉइंट से डेटा लोड करने की आवश्यकता है, तो यह नेटवर्क अनुरोध को तुरंत चालू करने के लिए एक अच्छी जगह है। इस विधि में राज्य को सेट करने से पुनः प्रतिपादन ट्रिगर होगा।

अन्य component lifecycle methods चेकआउट करने के लिए स्वतंत्र महसूस करें।

+0

ग्रेट इससे बहुत मदद मिली – AziCode

+0

मेरे पास एक और सवाल है: मैं किसी अन्य घटक से 'this.refs.simpleDialog.show()' को कैसे कॉल कर सकता हूं। मेरे पास मेरे पृष्ठ के शीर्षलेख के लिए एक घटक है जिसमें एक बटन है। मैं एक मोडल पेज (यह एक और घटक) प्रदर्शित करने के लिए उस बटन पर क्लिक करना चाहता हूं? – AziCode

+1

@AziCode - आप स्काईलाइट घटक को कैसे कॉल कर रहे हैं इसके समान असली। आप अपने बच्चे के घटक वर्ग पर सार्वजनिक विधि में 'शो()' कॉल को लपेट सकते हैं और उसके बाद मूल घटक से, रेफ संग्रह का उपयोग कर सकते हैं और उस विधि को कॉल कर सकते हैं। –

1

एक मॉडल घटक पर खोले गए माउंट, बस isVisible सही पर सेट किया

<SkyLight isVisible={true} ref="simpleDialog" title="Test Modal"> 
+2

अच्छा खोज। हालांकि, स्रोत कोड को देखते हुए, ऐसा लगता है कि केवल स्टेटलेस संस्करण ही इसका समर्थन करता है? –

संबंधित मुद्दे

 संबंधित मुद्दे