0

我正在尝试根据某个值向组件添加不同的 Id。

我的方法如下

id={activePage === ('dashboard' || 'evc_detail')? 'bg_gradient':'bg_normal'}

在这种情况下,如果activePage等于则添加正确的 id,但如果等于dashboard则不注册。我使用这种情况的方式是否错误,我该如何解决?activePageevc_detail

4

1 回答 1

5

如果要进行多重比较,则需要手动说明:

(activePage === 'dashboard' || activePage === 'evc_detail') ? 'bg_gradient' : 'bg_normal'

另一种选择是创建一个项目数组(或一个集合),并使用Array.includes()(或Set.has) 检查项目是否在组中:

const gradientPages = ['dashboard', 'activePage']

gradientPages.includes(activePage) ? 'bg_gradient' : 'bg_normal'

如果'dashbarod' 不是因为它的评估方式,你的原始表达式activePage === ('dashboard' || 'evc_detail')? 'bg_gradient':'bg_normal'不起作用:activePage

  1. 'dashboard' || 'evc_detail'被评估,因为 'dashboard' 是一个真实的表达式,结果总是dashboard.
  2. 'dashboard' 与 进行比较activePage。如果activePage是 'dashboard',则结果为true,否则为false.
于 2019-11-02T06:13:18.827 回答