2015-03-29 13 views
16

मेरी घरेलू एप्लिकेशन प्रतिक्रिया में, मैं JSON डेटा इस तरह कच्चे HTML तत्वों है कि में खींच रहा हूँ: <p>This is some text. Let&#8217;s figure out...</p>एचटीएमएल प्रस्तुत प्रतिक्रिया में मूल निवासी

मैं इस तरह के एक दृश्य के लिए डेटा जोड़ा है मेरे एप्लिकेशन में:

<Text>{this.props.content}</Text>

समस्या यह है कि HTML कच्चे हो जाता है, यह ब्राउज़र में ऐसा नहीं होता है। क्या मेरे जेएसओएन डेटा को मेरे ऐप व्यू के अंदर ब्राउज़र में दिखने का कोई तरीका है?

धन्यवाद।

+0

रिएक्ट में, HTML को प्रदर्शित करने के लिए 'खतरनाक SetInnerHTML' प्रॉपर्टी (https://facebook.github.io/react/docs/jsx-gotchas.html) है। मैं अब इसका परीक्षण नहीं कर सकता, लेकिन यह मूल के साथ भी काम कर सकता है। – zvona

+0

असल में मैंने कोशिश की: '<खतरनाक रूप से पाठ SetInnerHTML = {{__ html: this.props.content}}> 'तब तक काम नहीं किया जब तक कि मैं कुछ गलत नहीं कर रहा हूं। – Scott

+0

इसे जांचें: https://gist.github.com/jsdf/7f983f2cd955fd75d6cc – zvona

उत्तर

18

मार्च 2017 संपादित करें: html प्रोप को हटा दिया गया है। बजाय source का उपयोग करें:

<WebView source={{html: '<p>Here I am</p>'}} /> 

https://facebook.github.io/react-native/docs/webview.html#html

Justin के लिए धन्यवाद इस ओर इशारा करते हुए के लिए।


संपादित फ़र, 2017: पीआर एक समय पहले स्वीकार कर लिया गया है, इसलिए में प्रतिक्रिया मूल निवासी, तो बस HTML रेंडर करने के लिए:

<WebView html={'<p>Here I am</p>'} /> 

मूल उत्तर:

मुझे नहीं पता लगता है कि यह वर्तमान में संभव है। जो व्यवहार आप देख रहे हैं, वह अपेक्षित है, क्योंकि टेक्स्ट घटक केवल आउटपुट करता है ... अच्छा, टेक्स्ट। आपको HTML का आउटपुट करने वाला एक और घटक चाहिए - और यह WebView है।

दुर्भाग्य से अभी सिर्फ सीधे इस घटक पर HTML स्थापित करने का कोई रास्ता नहीं है:

https://github.com/facebook/react-native/issues/506

हालांकि मैं सिर्फ this PR जो इसलिए उम्मीद है कि यह ले जाया जाएगा इस सुविधा का मूल संस्करण को भी लागू बना लिया है जल्द ही कुछ रूप में।

+0

बहुत बढ़िया कॉलिन, ऐसा करने के लिए धन्यवाद! मैं जिथूब मुद्दे पर नजर रखूंगा। – Scott

+2

संस्करण 0.42 (https://facebook.github.io/react-native/docs/webview.html#html) पर दस्तावेज़ों के अनुसार HTML संपत्ति को बहिष्कृत कर दिया गया है। अब यह कहता है कि इसका उपयोग स्रोत प्रोप के साथ किया जाना चाहिए। '<वेब व्यू स्रोत = {{html: '

यहां मैं

'}} />' हूं। – Justin

7

मुझे यह घटक मिला। https://github.com/jsdf/react-native-htmlview

इस घटक HTML सामग्री लेता है और देशी विचारों के रूप में यह renders, अनुकूलन शैली और लिंक की हैंडलिंग, आदि के साथ

+3

सीएसएस के साथ एचटीएमएल स्टाइल प्रतिक्रिया-देशी-htmlview के साथ काम नहीं करता है। यदि यह कोई मुद्दा है, तो मैं इसकी अनुशंसा नहीं करता हूं। –

+0

इसे भी अनुशंसा नहीं करते हैं। – lngs

2

प्रतिक्रिया मूल निवासी WebView घटक को अपडेट किया गया प्रत्यक्ष एचटीएमएल प्रतिपादन के लिए अनुमति देने के लिए। यहाँ एक उदाहरण है कि काम करता है के लिए मुझे

var htmlCode = "<b>I am rendered in a <i>WebView</i></b>"; 

<WebView 
    ref={'webview'} 
    automaticallyAdjustContentInsets={false} 
    style={styles.webView} 
    html={htmlCode} /> 
+7

एचटीएमएल प्रोप [अब बहिष्कृत] है (https://facebook.github.io/react-native/docs/webview.html)। इसके बजाए स्रोत प्रोप का प्रयोग करें। –

0
<WebView ref={'webview'} automaticallyAdjustContentInsets={false} source={require('../Assets/aboutus.html')} /> 

यह मेरे लिए काम किया :) मैं एचटीएमएल पाठ aboutus फ़ाइल है।

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