Как правильно использовать тернарный оператор внутри строковых шаблонов? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть геттер, который должен возвращать другое значение в зависимости от существующих реквизитов. Это выглядит так:

const converter = ({ propsValue }) => {
  return {
     get label() {
         return `${propsValue} ? ${propsValue} : ${anotherValue} ${secondAnotherValue}`
      } 
   }
}

Вопрос в следующем: каков правильный синтаксис для троичного оператора внутри литералов строковых шаблонов?

Ответы [ 3 ]

3 голосов
/ 23 октября 2019

Вы должны поставить условие в скобках

const converter = ({ propsValue }) => {
  return {
     get label() {
         return `${propsValue ? propsValue : 'anotherValue'}`
      } 
   }
}

С динамическим значением

return `${propsValue ? propsValue : anotherValue}`;

С двумя динамическими значениями

return propsValue ? propsValue : `${anotherValue} ${secondAnotherValue}`;

ИЛИ

return `${propsValue ? propsValue : anotherValue + ' ' + secondAnotherValue}`;
0 голосов
/ 23 октября 2019

Способ сделать это внутри кавычек будетreturn `${propsValue ? propsValue : anotherValue} ${secondAnotherValue}`но лучший способ сделать это - использовать оператор or следующим образом:return `${propsValue || anotherValue} ${secondAnotherValue}`

0 голосов
/ 23 октября 2019

Есть ответы для использования троичного оператора

Однако, если вы хотите найти более короткий и лучший вариант, я бы хотел предложить еще одну вещь, если вы просто проверяете первую строку таким образом,Вы также можете использовать его как

Решение без использования троичного оператора

return `${(propsValue ||anotherValue)}`

Однако, если у вас есть несколько динамических значений , вы все равно можете использоватьэто как

return `${(propsValue ||anotherValue + oneMoreValueHere)}`

и применить то же самое в вашем коде,

const converter = ({ propsValue }) => {
  return {
     get label() {
           return `${(propsValue ||anotherValue + oneMoreValueHere)}`
      } 
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...