Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在reactJS映射函数中添加条件语句_Reactjs - Fatal编程技术网

如何在reactJS映射函数中添加条件语句

如何在reactJS映射函数中添加条件语句,reactjs,Reactjs,我试图呈现基于JSON键的不同标记,但它不断抛出语法错误。。。 不过,只添加两个条件中的一个就可以了! 我怎样才能把它做好 <ul className="features"> { property.details.features.map((idx, feature) => feature.hasOwnProperty(area) ? <li> <span className="icon-frame"/> <div className="engl

我试图呈现基于JSON键的不同标记,但它不断抛出语法错误。。。 不过,只添加两个条件中的一个就可以了! 我怎样才能把它做好

<ul className="features">
{
property.details.features.map((idx, feature) =>
feature.hasOwnProperty(area) ? 
<li>
<span className="icon-frame"/>
<div className="english">{feature[area]}m2 </div>
</li> : null
feature.hasOwnProperty(bedRoom) ? <li>
<span className="fa fa-bed"/>
<div className="english">{feature[bedRoom]}</div>
</li> :null

)
}
</ul>
    { property.details.features.map((idx,feature)=> 功能。有自己的物业(区域)?
  • {特征[面积]}m2
  • :空 特色:拥有自己的房产(卧室)?
  • {特色[卧室]}
  • :空 ) }

问题在于,函数体中有一个箭头函数,但没有大括号,这意味着箭头后面的表达式将是该函数返回的内容。但是一行中有两个表达式(两个三元运算符),因此它不知道返回什么,因此出现语法错误。您可以尝试以下方法:

<ul className="features">
  {
    property.details.features.map((idx, feature) =>
      feature.hasOwnProperty(area) ? 
        (
          <li>
            <span className="icon-frame"/>
            <div className="english">{feature[area]}m2 </div>
          </li>
        ) 
      : feature.hasOwnProperty(bedRoom) ? 
        (
          <li>
            <span className="fa fa-bed"/>
            <div className="english">{feature[bedRoom]}</div>
          </li>
        ) 
     : null
    )
  }
</ul>
    { property.details.features.map((idx,feature)=> 功能。有自己的物业(区域)? (
  • {特征[面积]}m2
  • ) :功能。有自己的物业(卧室)? (
  • {特色[卧室]}
  • ) :null ) }
因此,如果特征具有属性区域,则渲染第一个,否则,如果特征具有属性bedrom,则渲染第二个,否则,返回null。我试图使它尽可能可读,但使用长三元运算符从来都不容易。 您可以始终只包装箭头函数的主体,并使用
if
else
return
语句来执行它