首页 > 解决方案 > 我可以向 React 片段添加一个关键道具吗?

问题描述

dl在 React 中生成一个:

<dl>
  {
    highlights.map(highlight => {
      const count = text.split(highlight).length - 1;

      return (
        <>
          <dt key={`dt-${highlight.id}`}>{highlight}</dt>
          <dd key={`dd-${highlight.id}`}>{count}</dd>
        </>
      );
    })
  }
</dl>

这给了我警告:

警告:列表中的每个孩子都应该有一个唯一的“关键”道具。

这将删除警告,但不会生成我想要的 HTML:

<dl>
  {
    highlights.map(highlight => {
      const count = text.split(highlight).length - 1;

      return (
        <div key={highlight.id}>
          <dt>{highlight}</dt>
          <dd>{count}</dd>
        </div>
      );
    })
  }
</dl>

而且我无法key向片段(<> </>)添加道具。

如何解决这个问题?


我正在使用反应16.12.0

标签: javascriptreactjsjsx

解决方案


要向片段添加键,您需要使用完整的片段语法:

<React.Fragment key={your key}>
...
</React.Fragment>

请参阅此处的文档https://reactjs.org/docs/fragments.html#keyed-fragments


推荐阅读