如何使用 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>