如何使用 Expo (React-Native) 在 Web 浏览器中呈现 HTML 字符串?
How to Render HTML string in Web Browser with Expo (React-Native)?
我正在使用 react-native-webview-quilljs
呈现格式化的 HTML 文本。它在 Android 和 iOS 上运行良好,但在 Web 上不受支持(即 react-native-web
/expo-web
)。因此,在浏览器上呈现格式化字符串时(即呈现非格式化文本),我设法去除了 HTML 标签。
然后我意识到 react-native-web
实际上使用 React
在浏览器上呈现 react-native
组件。 React 具有 dangerouslySetInnerHTML
之类的东西,允许注入 HTML 字符串直接在浏览器上呈现。
那么,有没有办法使用 react-native
/ expo
项目中的 dangerouslySetInnerHTML
。
经过仔细检查,我发现 html 标签在浏览器上呈现时被转换为 html 实体。看看下面的图片。
通过在 Platform.OS === 'web'
.
时渲染带有 dangerouslySetInnerHTML
道具的 <div>
解决了它(宁愿称之为解决方法)
示例:
Platform.OS === 'web'
? <div dangerouslySetInnerHTML={{ __html: Details }} />
: <View style={{flex: 1}}>
<WebViewQuillJS
backgroundColor={'transparent'}
content={Details}
isReadOnly
/>
</View>
我正在使用 react-native-webview-quilljs
呈现格式化的 HTML 文本。它在 Android 和 iOS 上运行良好,但在 Web 上不受支持(即 react-native-web
/expo-web
)。因此,在浏览器上呈现格式化字符串时(即呈现非格式化文本),我设法去除了 HTML 标签。
然后我意识到 react-native-web
实际上使用 React
在浏览器上呈现 react-native
组件。 React 具有 dangerouslySetInnerHTML
之类的东西,允许注入 HTML 字符串直接在浏览器上呈现。
那么,有没有办法使用 react-native
/ expo
项目中的 dangerouslySetInnerHTML
。
经过仔细检查,我发现 html 标签在浏览器上呈现时被转换为 html 实体。看看下面的图片。
通过在 Platform.OS === 'web'
.
dangerouslySetInnerHTML
道具的 <div>
解决了它(宁愿称之为解决方法)
示例:
Platform.OS === 'web'
? <div dangerouslySetInnerHTML={{ __html: Details }} />
: <View style={{flex: 1}}>
<WebViewQuillJS
backgroundColor={'transparent'}
content={Details}
isReadOnly
/>
</View>