React使用dangerouslySetInnerHTML来渲染带有html标签的json

2024-04-15

我正在尝试渲染一个 json 列表,其中列表中的字符串中包含 html 标签,如下所示jsbin https://jsbin.com/deqiqeb/edit?js,console,output。它可以在 Jsbin 中运行。但在我的控制台中我收到以下警告:

warning  Only set one of `children` or `props.dangerouslySetInnerHTML` react/no-danger-with-children

只是想知道是否还有其他方法可以使用angerouslySetInnerHTML 呈现列表以避免警告?

const displayList = [
    {
        item: 1,
        text: "<strong>ABC</strong> this should be strong."
    },
    {
        item: 2,
        text: "<a>ABC</a> this should be link."
    },
    {
        item: 3,
        text: "normal text"
    }
];

const App = () => (
    <ul>
        {displayList.map((item, i) => (
            <li key={i}>
                <div dangerouslySetInnerHTML={{
                    __html: item.text
                }}>
                </div>
            </li>
        ))}
    </ul>
);

ReactDOM.render(
    <App />,
    document.getElementById('root')
);

React 正在抱怨使用dangerouslySetInnerHTML与安全反应孩子一起,当你让 div 标签打开这样的特性时,就会发生这种情况<div>open and ready for children</div>.

由于您使用的是 JSX 语法扩展,因此这里的解决方案是将整个句子写在一行中:

<div dangerouslySetInnerHTML={{__html: item.text}}></div>

或者只使用单例 div 标签:

<div dangerouslySetInnerHTML={{
       __html: item.text
     }}/>

顺便说一句,您不会在 jsbin 上收到错误,因为它是一个 React 生产版本,这个版本并不是为了告诉您可以写得更好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React使用dangerouslySetInnerHTML来渲染带有html标签的json 的相关文章

随机推荐

  • CSS 中的逗号,使用相同 CSS 的多个选择器

    Resource table Tbl td some css Resource table Tbl td num some css 2 Resource table Tbl td num span icon some css 3 Resou
  • x >= 0 比 x > -1 更有效吗?

    在 C 中与 int 进行比较是x gt 0比更有效率x gt 1 简短的回答 不 更长的答案提供一些教育见解 这完全取决于您的编译器 尽管我打赌每个理智的编译器都会为这两个表达式创建相同的代码 示例代码 int func ge0 int
  • 如何查找USB盘符?

    我正在编写一个安装程序来将应用程序安装到 USB 驱动器 该应用程序只能从 USB 驱动器使用 因此它可以通过自动选择要安装的 USB 驱动器来为用户节省额外的步骤 我可能会尝试使用 Nullsoft 或 MSI 进行安装 但由于我最熟悉
  • 列出目录和子目录中的所有 xml 文件

    我想列出目录及其子目录中的所有 xml 文件 我尝试了 ls LR 但无法过滤除 xml 之外的其他文件 我想要类似 ls LR 的东西grep xml Thanks 您可以使用find命令 find type f name xml
  • Microsoft Graph API 更新其他用户的照片?

    使用 Microsoft Graph API 我能够获取 Azure Active Directory 租户中所有用户的列表 并确定他们是否有个人资料图片 然后 我想获取没有照片的用户列表并为他们上传一张 但 API 返回 403 错误 即
  • MVC5 通过流畅验证比较两个可为空的日期

    如何在流畅的验证中编写规则来检查两个可为空的日期 因为开始日期需要早于结束日期 我正在思考 RuleFor c gt c StartDate NotEmpty 如果开始日期不为空且结束日期不为空则进行比较 像这样的东西 RuleFor ac
  • HTML 中的 JavaScript 和 SVG [重复]

    这个问题在这里已经有答案了 我有 JavaScript 文件 我有 SVG 文件 我还有 HTML 文件 img src svgfile svg type 有人知道如何在 JavaScript 中调用 SVG 元素吗 以圆圈为例 如果您想使
  • 约束接口中的函数参数

    在接受函数的接口中约束函数参数的语法是什么 我试过 interface Num a gt Color f a gt Type where defs 但它说Name a is not bound in interface Your inter
  • 如何在不删除数据库文件的情况下完全清除SQLite3数据库?

    出于单元测试的目的 我需要完全重置 清除 SQLite3 数据库 运行测试套件时 所有数据库都是在内存中创建的 而不是在文件系统上创建的 因此我无法删除任何文件 此外 一个类的多个实例将同时引用数据库 因此我不能只在内存中创建一个新数据库并
  • 如何在 C# 中构建具有未指定参数数量的方法

    这是我的代码 private static string AddURISlash string remotePath if remotePath LastIndexOf remotePath Length 1 remotePath retu
  • 将前四个列表项移至列表末尾

    所以我有一个包含几个的列表 li 元素 ul li a li li b li li c li li d li li e li li f li li g li li h li ul 上下文是我想重用liiOS 的 1 000 个内存密集型列表
  • 从 java.sql.ResultSet 检索列名

    With java sql ResultSet有没有办法获取列的名称String通过使用列的索引 我查看了 API 文档 但找不到任何内容 您可以从以下位置获取此信息ResultSet元数据 看结果集元数据 https docs oracl
  • 是否有记录的方法来设置 iPhone 方向?

    我有一个应用程序 我想在某些视图中支持设备旋转 但其他视图在横向模式下特别有意义 因此当我交换视图时 我想强制将旋转设置为纵向 UIDevice 上有一个未记录的属性设置器可以实现这一点 但显然会生成编译器警告 并且可能会随着 SDK 的未
  • 如何从 xarray 数据集中选择特定数据变量

    背景 我正在尝试通过 xarray 和 OPeNDAP 下载 GFS 天气数据 netcdf4 文件 非常感谢涡度0123 https stackoverflow com questions 52406826 load selection
  • 我可以确定是否从终端运行 Perl 脚本吗?

    我可以确定是否从终端运行 Perl 脚本吗 如果我不确定的话 我宁愿默认假设它是从浏览器运行的 但如果有一种方法可以确保它 100 是从终端运行的 我会很高兴 出于调试目的 这是直接取自 ExtUtils MakeMaker 的源代码pro
  • 如何在 Dart 中对字符串列表进行排序?

    我在 API 文档中看到有一个sort 方法上List 但我不清楚它需要什么参数 当前的需求是进行非常简单的直接 alpha 比较 1 快速解决方案 谢谢你的提问 您可以对列表进行排序String像这样 main final List
  • Vue.js 2 - 从 body 标签中删除初始边距

    如果这是一个愚蠢的问题 我很抱歉 我对 Vue 还很陌生 我创建了一个 Vue 使用命令vue init webpack
  • 重新分配值时维护每个键的对象值类型

    const obj a 1 b foo for const k of Object keys obj as keyof typeof obj obj k obj k TS游乐场 https www typescriptlang org pl
  • 从 VB6 和 C# 调用 DLL 给出的双精度结果略有不同

    我在 DLL 中有一个专有库 我没有代码 该库已在 VB6 中使用多年 我正在尝试将VB6代码升级到C 并希望使C 代码完全复制VB6的行为 当从每个环境调用时 我无法使 DLL 中完成的某些计算的双精度结果完全匹配 在 VB6 中 我有类
  • React使用dangerouslySetInnerHTML来渲染带有html标签的json

    我正在尝试渲染一个 json 列表 其中列表中的字符串中包含 html 标签 如下所示jsbin https jsbin com deqiqeb edit js console output 它可以在 Jsbin 中运行 但在我的控制台中我