переменной:
console.log(process.env.REACT_APP_SOMETHING);
Результат true
И потом я сразу вызываю сравнение
console.log(process.env.REACT_APP_SOMETHING === true);
Результат false
Какова природа этого результата?
'true' и true?
И как мне в .env использовать булево значение для работы в компаненте
Оператор !! использовать и привести строку к булевому значению?
точно, попробую
!!'false' будет равно true
https://stackoverflow.com/questions/263965/how-can-i-convert-a-string-to-boolean-in-javascript
Наиболее вероятно что данные env отсуствуют в сборке, что показывает лог самой переменной?
Не, он есть. просто он имеет строковое значение. Для моих целей мне достаточно проверять не его значение ("true", "false", "somethingWord"), а его наличие. По его наличию я определю отображать компонент или нет, ребята правильно направили
Ту так ясное дело что сравнение не проидет, пытаешься булевое со строкой сравнить через строгое сравнение.
Да, не знал что .env не умеет в булево просто...
Проще к типу привести будет.
Можно еще лучше, булевое в строку 🙃
Как вариант сойдет. А лучше булевые данные не заносить по возможности в env.
А как же фича-флаги?
Если приложение используется в нескольких проектах то нет вопросов, но для одного проекта затраты не стоят того, с учетом того что их в гите не желательно хранить для безопасности.
Ну у меня ситуация что есть проект, он запущен в проще и для портфолио В первому случае надо отрубить регистрацию, а во втором оставить её, вот и извращаюсь)
Оправданный случай, помогает упростить настроику без специальной страницы на проекту.
Это всё легко решается if (process_env.FEATURE_FLAG) { // какая-то фича }
Да даже тернарник можно или нулевое присваивание, хотя со строкой не прокатит скорее всего.
Ну примерно так и сделал
Обсуждают сегодня