Лучший способ проверить условие false и true в React Js

как лучше всего проверить условие 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

Есть ли лучший/правильный способ справиться с ложным и истинным состоянием?

Попробуйте Boolean(this.props.widget) или this.props.widget === true

Dreamy Player 15.11.2022 17:19

Считайте, что проголосовали за принятый ответ;))

kind user 16.11.2022 14:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
83
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Они оба одинаковы, но «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

Другие вопросы по теме