2014-12-17 9 views
10
के माध्यम से निष्पादित करेंगे कि सम्मिलित

इस पर जवाब में से एक गुच्छा रहे हैं, लेकिन मैं कुछ विशिष्ट reactjs कोगतिशील रूप से स्क्रिप्ट टैग Reactjs

मेरे घटक कोड के लिए देख रहा हूँ:

render: function() { 

    return (
     <Modal {...this.props} title="Embed on your own site!"> 
     <div className="modal-body"> 
      <div className="tm-embed-container" dangerouslySetInnerHTML={{__html: embedCode}}> 
      </div> 
      <textarea className="tm-embed-code" rows="4" wrap="on" defaultValue={embedCode}></textarea> 
     </div> 
     </Modal> 
    ); 
    } 
}); 

स्क्रिप्ट टैग है पृष्ठ पर, लेकिन कोई निष्पादन नहीं। क्या मुझे प्रतिक्रिया के बाहर जाना चाहिए और अन्य ओएल 'डोम स्क्रिप्टिंग का उपयोग करना चाहिए क्योंकि अन्य उत्तरों संकेत देते हैं?

उत्तर

10

जो मैं समझता हूं, उसके लिए प्रतिक्रियात्मक तरीका "घटकडिडमाउंट" फ़ंक्शन का उपयोग करना होगा ताकि आप कुछ बाहरी स्क्रिप्ट समेत div में जो चाहते हैं उसे सम्मिलित कर सकें।

यदि आपका घटक गतिशील है और नियामक नए प्रोप प्राप्त करता है, तो आपको अन्य विधियों (जैसे घटकडिडअपडेट) पर भी विचार करना चाहिए। jQuery के साथ स्क्रिप्ट प्रविष्टि के बारे में

अधिक पर this question

componentDidMount: function(){ 
 
    var embedCode = this.props.embedCode; // <script>//my js script code</script> 
 
    
 
    $('#scriptContainer').append(embedCode); 
 
    }, 
 

 
    render: function() { 
 
    return (
 
     <Modal {...this.props} title="Embed on your own site!"> 
 
     <div className="modal-body"> 
 
      <div className="tm-embed-container" id="scriptContainer"> 
 
      </div> 
 
      <textarea className="tm-embed-code" rows="4" wrap="on" defaultValue={this.props.embedCode}></textarea> 
 
     </div> 
 
     </Modal> 
 
    ); 
 
    } 
 
});

+2

jQuery से बचना चाहते थे, खेद मुझे लगता है कि कहा जाना चाहिए था। मैं एचटीएमएल() का उपयोग करने के साथ समाप्त हो गया; –

+2

यह थोड़ा जादुई है, स्पष्ट रूप से jquery सिर्फ 'const div = document.createElement (' div ') से अधिक करता है; ' ' div.innerHTML ='

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