2015-06-08 11 views
9

मुझे अपने टेम्पलेट प्रतिपादन से गतिशील एचटीएमएल सामग्री मिल जाएगी जो अन्य प्रतिक्रिया घटकों द्वारा प्रदान की गई थी। मैं इस एचटीएमएल स्ट्रिंग को घटक को वापस करने के लिए कैसे परिवर्तित करूं ताकि मैं अपने रेंडर फ़ंक्शन में घटक का उपयोग कर सकूं। ध्यान दें कि मैं diffing के लिए इस्तेमाल प्रतिक्रिया विशिष्ट विशेषताओं को संरक्षित करना चाहता हूँ।घटक प्रतिक्रिया करने के लिए गतिशील एचटीएमएल स्ट्रिंग

React.createClass({ 
 
    var self = this; 
 

 
    componentWillMountDown : function() { 
 
    //htmlString is essentially huge dynamic one in my actual case 
 
    var htmlString = "<div class='classDiv' react-id="0.1"><input type='text'/></div>"; 
 
    self.setState({responseString : htmlString}); 
 
    self.forceUpdate(); 
 
    }, 
 
    
 
    render: function() { 
 
    var Response = this.state.responseString; 
 
    //how would I return the react component as response? 
 
    return (<Response/>); //does not work. err is it shd be valid react component 
 
    } 
 
});

मैं HTMLDocument वस्तु को htmlString बदलने और रिकर्सिवली willmount कॉलबैक और सेटिंग में React.createElement बनाने की कोशिश की है घटक प्रतिक्रिया होती है। हालांकि, त्रुटि प्रकार है अपरकेस परिभाषित नहीं है।

उत्तर

6

क्योंकि आप अपने घटक को स्ट्रिंग के रूप में संग्रहीत करते हैं, इसलिए आपको dangerouslySetInnerHTML का उपयोग करना होगा। यह मेरा सुझाव है। मुझे उम्मीद है कि किसी और के पास बेहतर जवाब होगा। :)

render: function() { 
    var self = this; 
    var Response = React.createClass({ 
     render: function(){ 
     return (<div dangerouslySetInnerHTML={{__html: self.state.responseString}}></div>) 
     } 
    }); 
    return (
      <Response /> 
    ) 
    } 
+3

बस सवाल संपादित किया गया। चूंकि मैं प्रतिक्रिया विशिष्ट विशेषताओं को संरक्षित करना चाहता हूं, इसलिए मैं खतरनाक रूप से SetInnerHtml का उपयोग करने में सक्षम नहीं होगा। क्या HTML स्ट्रिंग – BharaniK

6

कुछ घंटे पहले, मैंने NPM (https://www.npmjs.com/package/html-to-react) आप मदद कर सकते हैं में एक html-to-react मॉड्यूल प्रकाशित किया।

अगर आपको कुछ भी चाहिए तो कृपया मुझे बताएं, मैं मॉड्यूल को अधिक लचीला बनाने के लिए निश्चित रूप से आपके साथ काम कर सकता हूं।

+0

से प्रतिक्रिया घटक बनाने का एक प्रोग्रामेटिक तरीका है ISP.NET MVC प्रोजेक्ट में एचटीएम-टू-रिएक्शन का उपयोग कैसे कर सकता हूं? इंटरनेट पर देखा लेकिन इसे सरल जवाब नहीं मिला। –

+0

आपको वेबपैक का उपयोग करने के लिए ReactJS.net को कॉन्फ़िगर करना होगा, जो शाही दर्द है। देखें: https://reactjs.net/guides/webpack.html - इस दृष्टिकोण को आजमाने और सफल होने के बाद (कुछ दिनों के काम के बाद) मेरे पास Asp.Net MVC प्रोजेक्ट को एक विश्वसनीय API का उपयोग करने के लिए संशोधित किया गया था और फ्रंट-एंड पोर्ट किया गया था बनाने-प्रतिक्रिया-एप बनाने के लिए –

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