为什么我可以在 react 中返回这多个元素而不将它们包装在片段中

Why can I return this multiple elements in react without wrapping them in a fragment

提问人:Johnny Chen 提问时间:11/9/2023 最后编辑:Johnny Chen 更新时间:11/9/2023 访问量:37

问:

这段代码在 react 中工作正常,并打印出页面上的所有名称。 但是我想知道它正在将多个元素作为 react 组件重新使用,为什么它有效,我不应该将它们包装在一个片段中吗?

function App() {
  const names = ["jack", "taylor", "justin", "joy", "pink"];

  return names.map((name) => <h3>{name}</h3>);
}

export default App;
JavaScript ReactJS 数组

评论

1赞 Mike 'Pomax' Kamermans 11/9/2023
因为它返回的是一个数组,这个数组(不出所料)是 React 知道如何使用的“单个东西”,就像你返回了一堆包装在一个片段中的组件(或一个 div,或任何其他包含单个组件)的组件一样。

答:

1赞 chintan pansuriya 11/9/2023 #1

在 React 中,as Fragment 用于对组件进行分组。但是,代码无需将元素包装在 Fragment 中即可工作,因为 React 内部使用 fragment 将数组元素包装在其中。

在您的代码中,有一个 h3 元素数组,并且没有显式包装在 Fragment 或任何 Container 元素中。所以,React 在内部做这件事。

请参阅 React 文档,该文档指定它与未分组元素相同。

好吧,如果您想将某种样式应用于元素组,Fragment 很有用。