温馨提示:本文翻译自stackoverflow.com,查看原文请点击:reactjs - If within a map with arrow syntax
reactjs

reactjs - 如果在带有箭头语法的 map中

发布于 2020-04-03 23:28:53

我正在尝试做一个if,如下所示:

<tbody>
  {aiData.map((row, index) => (
    if(row[3]==='trace'){
      <tr key={index}>
      <td>{Moment(row[0]).format("DD-MM-YYYY hh:mm:ss")}</td>
      <td>{row[3]}</td>
      <td>{row[2]}</td>
      <td>{row[1]}</td>
    </tr>
    }
    else if(row[3]==='trace'){
    }        
  ))}
</tbody>

从这里的线程看来,这应该是可能的。但是我得到以下错误。我也尝试返回内容。

解析错误:意外的令牌。

如果用大括号括起来,则会得到以下结果: 在此处输入图片说明

查看更多

提问者
Thomas Segato
被浏览
17
TBouder 2020-01-31 20:09

在执行操作时xxx(YY) => (ZZ),它与相同xxx(YY) => (return ZZ)

进行所需操作的最佳方法是使用进行包装ZZ{}以使用可能的说明将其转换为函数:

{
  aiData.map((row, index) => {
      if(row[3]==='trace') {
        return (
          <tr key={index}>
            <td>{Moment(row[0]).format("DD-MM-YYYY hh:mm:ss")}</td>
            <td>{row[3]}</td>
            <td>{row[2]}</td>
            <td>{row[1]}</td>
          </tr>
        )
      } else if(row[3]==='trace') {
        return (null)
      }        
  })
}