Edit Jan 2021: The React Native docs currently recommend React Native WebView:
<WebView
originWhitelist={['*']}
source={{ html: '<p>Here I am</p>' }}
/>
https://github.com/react-native-webview/react-native-webview
If you don’t want to embed a WebView
, there are also third party libraries to render HTML into native views:
react-native-render-html
react-native-htmlview
Edit March 2017: the html
prop has been deprecated. Use source
instead:
<WebView source={{html: '<p>Here I am</p>'}} />
https://facebook.github.io/react-native/docs/webview.html#html
Thanks to Justin for pointing this out.
Edit Feb 2017: the PR was accepted a while back, so to render HTML in React Native, simply:
<WebView html={'<p>Here I am</p>'} />
Original Answer:
I don’t think this is currently possible. The behavior you’re seeing is expected, since the Text component only outputs… well, text. You need another component that outputs HTML – and that’s the WebView.
Unfortunately right now there’s no way of just directly setting the HTML on this component:
https://github.com/facebook/react-native/issues/506
However I’ve just created this PR which implements a basic version of this feature so hopefully it’ll land in some form soonish.