我正在尝试根据某个值向组件添加不同的ID。
我的方法如下
id={activePage === ('dashboard' || 'evc_detail')? 'bg_gradient':'bg_normal'}
在这种情况下,如果
activePage
等于dashboard
,则添加正确的ID,但是如果activePage
等于evc_detail
,则不会注册。我使用此条件的方式是否错误,我该如何解决? 最佳答案
如果要进行多个比较,则需要手动声明:
(activePage === 'dashboard' || activePage === 'evc_detail') ? 'bg_gradient' : 'bg_normal'
另一个选项是创建一组项目(或一组),然后使用
Array.includes()
(或Set.has
)检查项目是否在组中:const gradientPages = ['dashboard', 'activePage']
gradientPages.includes(activePage) ? 'bg_gradient' : 'bg_normal'
如果
activePage === ('dashboard' || 'evc_detail')? 'bg_gradient':'bg_normal'
不是'dashbarod',则原始表达式activePage
不起作用,因为它的求值方式:评估
'dashboard' || 'evc_detail'
,因为'dashboard'是真实的表达式,结果始终为dashboard
。将“仪表板”与
activePage
进行比较。如果activePage
为'dashboard',则结果为true
,否则为false
。关于javascript - 在第二个比较中reactjs OR条件中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58668697/