当前位置: 首页 > 知识库问答 >
问题:

在没有唯一键警告的情况下,如何使用React呈现材质UI网格

施自明
2023-03-14

我在这个项目中使用React和Material UI,需要呈现一个网格,其中的行来自数据数组,列包含如下所示的特定信息:

<Grid container>
  {myData.map((record) => (
    <>
      <Grid item>{record.field1}</Grid>
      <Grid item>{record.field2}</Grid>
      <Grid item>{record.field3}</Grid>
    </>
  )}
</Grid>

这当然会导致React警告列表中的项没有唯一键。

问题是, 在React中无效,并且用实际标记(例如

)替换 <>会使网格混乱;它期望网格项直接包含在网格容器中。

有什么办法可以解决这个问题吗?


匿名用户

您可以将传递给显式的 组件(<>仅用于该组件)。

React文档-键控片段:

使用显式 语法声明的片段可能有键。这方面的一个用例是将集合映射到片段数组--例如,创建描述列表:

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // Without the `key`, React will fire a key warning
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}

key是唯一可以传递给fragment的属性。将来,我们可能会添加对附加属性的支持,比如事件处理程序。

共有2个答案

阙佐
2023-03-14
相关问题
李利
2023-03-14

您可以将传递给显式的 组件(<>仅用于该组件)。

React文档-键控片段:

使用显式 语法声明的片段可能有键。这方面的一个用例是将集合映射到片段数组--例如,创建描述列表:

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // Without the `key`, React will fire a key warning
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}

key是唯一可以传递给fragment的属性。将来,我们可能会添加对附加属性的支持,比如事件处理程序。

 类似资料:
  • 我正在遵循Oracle的教程在JavaFX中创建TableView。在这个截图中,我复制并粘贴了代码,发现了几个错误,教程中没有提到这些错误。 TableView上的警告显示: TableView是原始类型。对泛型类型TableView的引用 表列上的警告说: 表列是一个原始类型。对泛型类型TableCol列的引用 addAll方法上的警告是: 类型安全:方法addAll(Object…)属于原始

  • 我正在尝试设置一个动态,从本地目录读取文件。因此,我创建了以下可参数化类: 参数化流在的帮助下注册,如下所示: 启动应用程序后,我得到以下警告: 如果我理解正确的话,负责创建集成bean(从而设置beanFactory)。但是为什么我会收到这个错误信息呢?

  • 我正在尝试使用selenium创建自动化,以安装chrome扩展。当我尝试在amazon虚拟机上运行这个jar时,我遇到了一个问题,因为当我尝试用robot类按enter键时,它不起作用,因为我没有连接物理键盘。我不能在selenium中使用sendkeys,因为来自google的pop不在同一页面,selenium无法识别它。有什么解决办法吗?

  • 我正在使用minGW的minw-w64(x64)分叉nuwen.net.这是来自gcc的7.1版本: 我正在编译这个程序: 带有警告和c11标准: 我得到了这些警告: 我想在没有警告的情况下打印size_t,但在这种情况下不知道正确的格式说明符。

  • 我试图创建一个滑块,这将有其显示的值定期更新。这方面的一个例子是Spotify/SoundCloud/YouTube上的播放时间表。我仍然希望滑块接受用户输入,这就是为什么我没有使用LinearProgress组件。 但是,每当更新value属性时,我都会收到以下错误消息: