javascript - JSX: map 内的条件语句

标签 javascript reactjs jsx

我试图了解如何在 JSX 中合并条件语句。我有一个对象数组,我将其映射到选择框。我想排除在indicator.name中包含子字符串“threshold”的项目。

所以我不能使用三元运算符,因为没有“或”项。但我不知道如何在此映射中包含 if 语句。无论我尝试什么,我都会收到错误。

<select
  defaultValue={defaultValue}
  onChange={e => setIndicator(e.currentTarget.value)}
  disabled={loading}
>
  <option key='' value=''>
    Select
  </option>
  {indicatorList.map(indicator => (
    <option key={indicator.name} value={indicator.name}>
      {indicator.label}
    </option>
  ))}
</select>

最佳答案

您可以过滤然后映射:

<select
  defaultValue={defaultValue}
  onChange={e => setIndicator(e.currentTarget.value)}
  disabled={loading}
>
  <option key='' value=''>
    Select
  </option>
  {indicatorList.filter(indicator=>indicator.name.includes('threshold')).map(indicator => (
    <option key={indicator.name} value={indicator.name}>
      {indicator.label}
    </option>
  ))}
</select>

或者返回null:

<select
  defaultValue={defaultValue}
  onChange={e => setIndicator(e.currentTarget.value)}
  disabled={loading}
>
  <option key='' value=''>
    Select
  </option>
  {indicatorList.map(indicator => (
    indicator.name.includes('threshold')?<option key={indicator.name} value={indicator.name}>:nul
      {indicator.label}
    </option>
  ))}
</select>

关于javascript - JSX: map 内的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61219624/

相关文章:

javascript - 如何将get参数传递给ajax url

reactjs - 无法使用 React + Jest + Datepicker + TextMask 读取 null 的属性 'selectionEnd'

reactjs - 如何将 Adsense 添加到使用 GatsbyJS 构建的网站?

javascript - 添加onclick到动态创建的span标签

javascript - 按图像导航

javascript - 在 JSX 中使用 React.cloneElement()

JavaScript 定义不确定状态对象的 var 简写

javascript - 如何解析[object对象]

javascript - 滚动条上错误的输入自动完成位置(chrome)

javascript - 如何将回调函数从 React 传递给 litelement?