映射元素内的JSX映射元素,相邻的JSX元素必须包装在封闭标签中

拉泽尔

似乎无法找到尝试将JSX元素都映射到JSX元素中的方法。我收到返回错误“相邻的JSX元素必须包装在一个封闭的标记中。您是否想要JSX片段<> ... </>?

我知道return函数需要整体返回一个元素,我相信我正在使用最顶层的div。外部映射正在映射字符串数组,内部映射正在映射已导入的Web Pack。我正在从redux状态中拉出字符串的外部映射,并且我已经验证了它的工作原理,并且Web Pack也可以正确映射,只是无法将它们映射在一起。在我的脑海中,我只是认为这基本上是一个外循环,然后是一个内循环。我会征求任何意见。

我想这个问题有一个简单的答案,只是无法弄清楚。

这是我的功能组件:

function UserLesson() {
    const classes = useStyles();
    const selectLessons = useSelector(state => state.redu.userLessons)

    return (
        <div className={classes.root}>
            {selectLessons.map((title) => (
                <h2>{title}</h2>
                <GridList className={classes.gridList} cols={2.5}>
                    {searchResources.result.map((resource) => (
                        <GridListTile key={resource.media}>
                            <img src={resource.media} alt={resource.title} />
                            <GridListTileBar
                                title={resource.title}
                                classes={{
                                    root: classes.titleBar,
                                    title: classes.title,
                                }}
                                actionIcon={
                                    <IconButton aria-label={`star ${resource.title}`}>
                                        <StarBorderIcon className={classes.title} />
                                    </IconButton>
                                }
                            />
                        </GridListTile>
                    ))}
                </GridList>
            ))}
        </div>
    );
}
阿吉特·沙阿(Ajeet Shah)

要返回多个元素,您需要将它们包装在父元素中。以下是几种方法:

通过添加一个额外的父元素:

return (
<div>
  <Child/>
  <Child/>
</div>
) 

不添加任何额外的父元素:

return (
<React.Fragment>
  <Child/>
  <Child/>
</React.Fragment>
) 

或使用Fragment的简写:

return (
<>
  <Child/>
  <Child/>
</>
) 

因此,您可以这样做来解决您的问题:

    {selectLessons.map((title) => (
             <React.Fragment key={some key here}>
                <h2>{title}</h2>
                <GridList className={clas.... 
                .... 
             </React.Fragment>
     ... 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

相邻的JSX元素必须包装在封闭标签中

React.js错误“相邻的JSX元素必须包装在一个封闭的标签中”

相邻的JSX元素必须包装在带有换行符的封闭标签中

错误:必须将相邻的JSX元素包装在一个封闭标签中

相邻的JSX元素必须包装在一个封闭标签中

相邻的JSX元素包装在结束标签中时,必须包装在包装标签错误中

如何解决相邻的JSX元素必须包装在React的封闭标签问题中

如何解决Vue.js中的“相邻JSX元素必须包装在封闭标签中”的问题

ReactJS开关大小写错误相邻的JSX元素必须包装在一个封闭标签中

解析错误:必须将相邻的 JSX 元素包装在封闭标记中(React.js)

如何解决该错误:相邻的JSX元素必须包装在一个封闭的标记中?在本地反应

相邻的 JSX 元素必须包含在封闭标签中,缺少父标签

相邻的 JSX 元素必须包含在封闭标签中(React-Native)

ReactJS 相邻的 JSX 元素必须包含在一个封闭的标签中

相邻的 JSX 元素必须包含在一个封闭的标签 reactjs 中

相邻的 JSX 元素必须包含在封闭标签中。你想要一个 JSX 片段 -ReactJS

相邻的 JSX 元素必须包含在一个封闭的标签中 - JSX 标签已经被包裹但一直忽略错误

React JS:只在 JSX 标签内映射数组的某些元素,其中要映射的元素被迭代

相邻的 JSX 元素必须包含在 react native 中

即使我使用 React.Fragment 也出现“解析错误:相邻的 JSX 元素必须包含在封闭标记中”

相邻的JSX元素

必须包装在封闭标签中

根据JSX中的条件更改包装其子元素的元素

JSX 元素的 HOC - 使用包装元素渲染 jsx

映射样式的JSX输入元素的行为不符合预期

jsx 中的元素道具

将<img>元素包装在<div>中,但允许使用<a>标签

如何将子元素包装在父标签中?

reactJS-JSX映射数组以形成元素,但将每个四个元素分组