首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用三元运算符控制是否映射到状态

使用三元运算符控制是否映射到状态
EN

Stack Overflow用户
提问于 2020-08-17 08:25:30
回答 4查看 66关注 0票数 0

我想使用一个三元运算符来控制是否在allTestTypes上映射。应该使用allTestTypes来填充DropdownSingle中的options参数

代码语言:javascript
运行
复制
{allTestTypes.map(item => item.test_type )}
  {!level ? null :
    <React.Fragment>
      <div>{configs[level].name}:</div>
      <DropdownSingle 
        name={configs[level].name} 
        value={testType} 
        options={configs[level].dropdownValues} 
        onChange={onTestFieldUpdate}
      />
    </React.Fragment>
  })

更新:

代码语言:javascript
运行
复制
{!level ? setAllTestTypes.map((item => null :
            <React.Fragment>
              <div>{configs[level].name}:</div>
              <DropdownSingle 
                name={configs[level].name} 
                value={testType} 
                options={configs[level].dropdownValues} 
                onChange={onTestFieldUpdate}
              />
            </React.Fragment>
          )
        })

错误:

更新2:

代码语言:javascript
运行
复制
{!level ? null : setAllTestTypes.map((item) =>
            <React.Fragment>
              <div>{configs[level].name}:</div>
              <DropdownSingle 
                name={configs[level].name} 
                value={testType} 
                options={item.test_type} 
                onChange={onTestFieldUpdate}
              />
            </React.Fragment>
          
          )})

错误2:

响应:

Sazzad更新错误:

EN

回答 4

Stack Overflow用户

发布于 2020-08-17 08:47:33

condition ? functionForMapping : oppositeCase

您可以将整个映射语句放在此处,也可以简单地将其包装在另一个函数中。

票数 1
EN

Stack Overflow用户

发布于 2020-08-17 09:02:28

如果要在映射任何数组项之前检查条件:

代码语言:javascript
运行
复制
<div>
    {
        !!condition && (
            array.map(item => item /* Mapping Function */)
        )
    }
</div>

如果您希望仅映射某些项目,请使用filter:

代码语言:javascript
运行
复制
<div>
    {
        array
            .filter(item => !!item /* Condition */)
            .map(item => item /* Mapping Function */)
    }
</div>
票数 0
EN

Stack Overflow用户

发布于 2020-08-17 09:08:36

您缺少一个结束的}。这个应该可以解决这个问题。

代码语言:javascript
运行
复制
{!level ? setAllTestTypes.map((item =>
        <React.Fragment>
          <div>{configs[level].name}:</div>
          <DropdownSingle 
            name={configs[level].name} 
            value={testType} 
            options={configs[level].dropdownValues} 
            onChange={onTestFieldUpdate}
          />
        </React.Fragment>
      )
    }) : null
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63443134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档