我正在尝试根据某个值向组件添加不同的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/

10-15 15:48