【发布时间】:2017-02-02 07:12:36
【问题描述】:
简单的问题:
JSX 允许您返回一个 map 函数,该函数将由一堆 div 或图像元素或任何 组成,而不必将 JSX 表达式包装在一个元素中。然而,如果你在没有 map 函数的情况下明确地输入一系列 DIV,它就会对你大喊大叫。请参见下面的示例:
<div style={{display:'flex', justifyContent:'space-between'}}>
{
(this.props.label.exampleImages.length > 0)
? this.props.label.exampleImages.map((image, i)=>{
return <img src={image.url}
alt={image}
key={`image-${i}`}
style={{marginTop:10}}/>
})
:
// this throws error even though above is essentially doing the same thing
<div className="image-placeholder"></div>
<div className="image-placeholder"></div>
<div className="image-placeholder"></div>
}
</div>
这是为什么?他们评估的不是完全相同的东西吗?
【问题讨论】:
-
究竟是什么错误?
-
@Pointy JSX 表达式必须包含在单个元素中错误
-
好的,这对我来说似乎很清楚。这就是 JSX 的本质。
-
那么地图返回一个数组?我认为它会返回以下内容:
-
无论如何我都不是 React 专家;它会让你用数组初始化语法和每个值的
<div/>标签构建一个数组吗?
标签: javascript reactjs ternary-operator jsx