代码之家  ›  专栏  ›  技术社区  ›  CraZyDroiD

第二次比较中的反应或条件中断

  •  0
  • CraZyDroiD  · 技术社区  · 5 年前

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

    我的方法如下

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

    在这种情况下,如果 activePage 等于 dashboard 添加了正确的id,但如果 活动页 等于 evc_detail 是的。我使用这个条件的方式是错误的吗?我如何解决这个问题?

    1 回复  |  直到 5 年前
        1
  •  4
  •   Ori Drori    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'
    

    你原来的表情 activePage === ('dashboard' || 'evc_detail')? 'bg_gradient':'bg_normal' 如果 activePage 不是“dashbarod”,因为它的计算方式:

    1. 'dashboard' || 'evc_detail' 因为“dashboard”是一个真实的表达式,所以结果总是 dashboard 是的。
    2. “仪表板”与 活动页 是的。如果 活动页 是“仪表板”结果是 true ,如果不是的话 false 是的。