【发布时间】:2020-01-29 12:39:17
【问题描述】:
我正在尝试在 jsx 中增加 map() 中的变量并隐藏基于它的元素。我收到以下错误
编译失败。
解析错误:相邻的 JSX 元素必须包含在封闭标记中。你想要一个 JSX 片段 ...?
我认为这是困扰我的行{myIncrement % 2 == 0 && <div data-key-id={row.key} key={row.key} className="">}
有什么想法吗? (我不是一个全职的 React 开发者,所以有点迷失在 jsx 中)
这是该部分的完整代码
{props.config.map(row => (
(row.isRequired || props.data[row.key]) &&
<React.Fragment>
{row.isFullWidth ?
<div data-key-id={row.key} key={row.key} className="">
<div className="">
<div className="">some key</div>
<div className="">some value</div>
</div>
</div>
:
<React.Fragment>
{myIncrement % 2 == 0 && <div data-key-id={row.key} key={row.key} className="">}
<div className="">
<div className="">{row.key}:</div>
<div className="">{row.value}</div>
</div>
{myIncrement % 2 == 0 && </div>}
{myIncrement = !row.isFullWidth ? myIncrement + 1 : myIncrement}
</React.Fragment>
}
</React.Fragment>
))}
【问题讨论】:
-
可以添加周边代码吗?您收到的错误表明您在组件中返回了多个 JSX 元素,这是不允许的,它们应该用单个组件包装
-
` {myIncrement % 2 == 0 &&}} ` 您不能分离开始和闭合标签。它们必须一起退回{myIncrement % 2 == 0 &&{row.key}:{row.value}
-
@dbramwell 该错误与此代码隔离,它是
myIncrement % 2 === 0代码确实导致了错误,我只是不知道如何解决它。
标签: javascript reactjs jsx