@KGZVER

Как решить эту проблему с if/else?

При входе на страницу хочу делать fetch запрос при условии если переменная constToken имеет значение. Но почему то запрос работает даже когда constToken == false.
React.useEffect(() => {
        const getToken = localStorage.getItem('token')
        if(getToken !== '') {
            changeValue('token', getToken)
            fetch('http://localhost:1717/profile', {
                method: 'GET',
                headers: { 'X-Auth': `${getToken}` },
            }) 
            .then(function (response) {
                return response.json()
            })
            .then(function ({data}) {
                setId(data.id)
                changeValue('profile', data)
            })
        }
        
    }, [changeValue, changeProfile, login])
  • Вопрос задан
  • 272 просмотра
Решения вопроса 2
Aetae
@Aetae Куратор тега JavaScript
Тлен
В localStorage хранятся только строки. Если вы делаете так localStorage.setItem('token', false), то при localStorage.getItem('token') вы получаете не '', а результат приведения false к строке, т.е. 'false'.
Впрочем false !== '' - тоже истина, потому что !== сравнение без приведения типов.
Ответ написан
Комментировать
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Насколько я понял ваш код, вам нужно просто
if (getToken) {
 // ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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