Это некоторая булева алгебра (вероятно, я буду использовать неправильные слова, я выучил математику на немецком языке, поэтому изменения и комментарии приветствуются):
Давайте начнем с ваших устных условий, переведенных на JavaScript (я удалил this.state
для лучшей читаемости):
(timeSlotItemSelected === null && quantityItemSelected === null) || (timeSlotItemSelected === null && deliveryOptionSelected === null)
Мы можем выделить timeSlotItemSelected
, поэтому это выглядит так:
timeSlotItemSelected === null && (quantityItemSelected === null || deliveryOptionSelected === null)
Теперь вы можете использовать его в операторе if или в тройном операторе.
Относительно вашего вопроса о «условии по умолчанию»:
Буквально нет способа установить значение по умолчанию при работе с логическим значением, они могут быть истинными или ложными.
Это значит:
Если предложение if или тернарный оператор имеют логическое значение в качестве входных данных (которое они имеют в JavaScript и большинстве других языков), у них не может быть третьего регистра по умолчанию, поскольку логическое значение может быть только истинным или ложным.
Переменная с типом boolean может иметь значение по умолчанию (например, false в Java), но не в JavaScript.