lavezzi1
@lavezzi1

Как лучше установить значение по умолчанию?

constructor(props) {
    this.isClosable = props.closable;
  }


Прилетает true или false. Как поставить по дефолту true? Пробовал через || не работает, всегда true;
  • Вопрос задан
  • 209 просмотров
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
Можно применить деструктуризацию + значение по умолчанию:

constructor({ closable = true }) {
  this.isClosable = closable;
}

Можно проверять наличие свойства:

this.isClosable = props.hasOwnProperty('closable') ? props.closable : true;

Или проверять на равенство undefined:

this.isClosable = props.closable === undefined ? true : props.closable;
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Выражение (false || true) всегда вернет true, в том-то и смысл оператора "или".

var props1 = {closable: false, foo: 'bar'}
var isClosable1 = props1.closable !== undefined ? props1.closable : true;

var props2 = {foo: 'bar'}
var isClosable2 = props2.closable !== undefined ? props2.closable : true;

console.log(isClosable1, isClosable2)
Ответ написан
Комментировать
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Много правильных решений выше, позвольте еще вариант, довольно простой:

constructor(props) {
    this.isClosable = props.closable === false? props.closable: true;
  }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы