2015-03-29 17 views
16

Trong tôi Phản ứng ứng dụng Native, tôi kéo trong dữ liệu JSON có các phần tử HTML thô như thế này: <p>This is some text. Let&#8217;s figure out...</p>Render HTML trong Phản ứng Native

Tôi đã thêm dữ liệu vào một cái nhìn trong ứng dụng của tôi như thế này:

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

Vấn đề là HTML xuất hiện thô, nó không hiển thị như trong trình duyệt. Có cách nào để lấy dữ liệu JSON của tôi trông giống như trong trình duyệt, bên trong chế độ xem ứng dụng của tôi không?

Cảm ơn.

+0

trong Phản hồi, có thuộc tính 'dangerouslySetInnerHTML' (https://facebook.github.io/react/docs/jsx-gotchas.html) để hiển thị HTML. Tôi không thể kiểm tra ngay bây giờ, nhưng nó cũng có thể hoạt động với Native. – zvona

+0

Thực ra tôi đã thử rằng: '' không hoạt động trừ khi tôi đang làm gì sai. – Scott

+0

kiểm tra điều này: https://gist.github.com/jsdf/7f983f2cd955fd75d6cc – zvona

Trả lời

18

Chỉnh sửa tháng 3 năm 2017: bảo vệ html không được dùng nữa. Sử dụng source thay vì:

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

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

Nhờ Justin cho trỏ này ra.


Sửa Tháng 2 năm 2017: PR đã được chấp nhận trong một thời gian trở lại, vì vậy để render HTML trong Phản ứng Native, chỉ cần:

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

gốc trả lời:

tôi không nghĩ rằng điều này hiện có thể. Hành vi mà bạn đang thấy được mong đợi, vì thành phần Văn bản chỉ xuất ra ... tốt, văn bản. Bạn cần một thành phần khác xuất ra HTML - và đó là WebView.

Đáng tiếc là ngay bây giờ không có cách nào chỉ trực tiếp thiết lập các HTML trên thành phần này:

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

Tuy nhiên tôi vừa tạo this PR mà thực hiện một phiên bản cơ bản của tính năng này vì vậy hy vọng nó sẽ hạ cánh trong một số hình thức sớm.

+0

Tuyệt vời Colin, cảm ơn vì đã làm điều đó! Tôi sẽ theo dõi vấn đề github. – Scott

+2

Theo tài liệu ở phiên bản 0.42 (https://facebook.github.io/react-native/docs/webview.html#html) thuộc tính html đã không được chấp nhận. Nó bây giờ nói rằng nó nên được sử dụng với nguồn prop thay thế. 'Ở đây tôi là

'}} />'. – Justin

7

Tôi đã tìm thấy thành phần này. https://github.com/jsdf/react-native-htmlview

thành phần này có nội dung HTML và làm cho nó như là quan điểm bản địa, với phong cách tùy biến và xử lý các liên kết, vv

+3

Tạo kiểu HTML bằng CSS không hoạt động với phản ứng-native-htmlview. Nếu đó là một vấn đề, tôi không khuyên bạn nên. –

+0

Bạn cũng không nên đề xuất. – lngs

2

Phản ứng Native đã cập nhật các thành phần WebView để cho phép vẽ trực tiếp html. Dưới đây là một ví dụ mà làm việc cho tôi

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

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

Các prop html là [bây giờ không được chấp nhận] (https://facebook.github.io/react-native/docs/webview.html). Sử dụng nguồn prop để thay thế. –

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

này làm việc cho tôi :) Tôi có tập tin html text aboutus.

Các vấn đề liên quan