реагирует ИЛИ условие нарушается во втором сравнении - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь добавить другой Id к компоненту на основе определенного значения.

Мой подход подобен приведенному ниже

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

В этом сценарии, если activePage равенк dashboard добавляется правильный идентификатор, но он не регистрируется, если activePage равен evc_detail. Является ли способ, которым я использую это условие неправильно и как я могу решить это?

1 Ответ

5 голосов
/ 02 ноября 2019

Если вы хотите выполнить несколько сравнений, вам нужно указать их вручную:

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

Другой вариант - создать массив элементов (или набор) и использовать Array.includes() (или * 1005). *) чтобы проверить, входит ли элемент в группу:

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

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

Ваше оригинальное выражение activePage === ('dashboard' || 'evc_detail')? 'bg_gradient':'bg_normal' не работает, если activePage не является "приборной панелью" из-за способа его оценки:

  1. 'dashboard' || 'evc_detail' оценивается, поскольку «панель мониторинга» является истинным выражением, результат всегда равен dashboard.
  2. «панель мониторинга» сравнивается с activePage. Если activePage является «приборной панелью», результатом будет true, если нет - false.
...