как лучше всего проверить условие false и true в этом случае, у меня изначально установлено состояние false
status: false,
Статус меняется на true, если присутствует определенный реквизит (виджет данных). Нужно ли мне добавлять ="true" к атрибуту?
<div id = "app" data-widget></div>
// Is it the same thing or i don't need to add the = "true" to the attribut
<div id = "app" data-widget = "true"></div>
Вот как я проверяю условие, я запутался, какое из них я должен использовать:
//Option 1
newData.status = this.props.widget ? true : false
//Option 2
newData.status = (typeof this.props.widget !== "undefined") ? true : false
Есть ли лучший/правильный способ справиться с ложным и истинным состоянием?
Считайте, что проголосовали за принятый ответ;))



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Они оба одинаковы, но «option2» просто проверяет, существует ли значение, и лучше подходит для обработки ошибок. Поэтому я думаю, что будет лучше использовать второй вариант. И некоторые атрибуты имеют значение по умолчанию, я думаю, что «виджет данных» имеет значение по умолчанию true
Есть ли лучший/правильный способ справиться с ложным и истинным состоянием?
Нет "лучшего" способа, все зависит от условий. Даже если они внешне похожи, они сильно отличаются. Первый вариант будет оцениваться как true, если props.widget правдиво - (это либо массив, объект, истина, число (отличное от 0) или непустая строка.
Однако второй будет оцениваться как true, если props.widget не равно undefined. Он будет оцениваться как false ТОЛЬКО если props.widget равно undefined.
В любом случае, если это приемлемо для ваших условий, я бы пошел с простой проверкой правдивости props.widget:
newData.status = Boolean(this.props.widget); // will evaluate to true or false
// with no need to use ternary
Попробуйте
Boolean(this.props.widget)или this.props.widget === true