JavaScript видит alert(...) (...)
так, как будто вы хотите вызвать возвращаемое значение alert
как функцию, но alert
не возвращает функцию.Вот что говорит вам ошибка.
Если вы хотите вычислять несколько выражений в последовательности, вы можете использовать оператор запятой :
condition ? case1 : (alert('some message'), <Redirect ... />)
// ^ ^ ^
Вы можете добиться того же, переместив вызов alert
перед оператором return
, что также упрощает ваш код:
render() {
const isLoggedIn = localStorage.getItem("IsLoggedIn");
if (!isLoggedIn) {
alert(...);
}
return <Route ... />;
}
Обратите внимание, что localStorage
хранит только строковые значения,поэтому вам, вероятно, нужно преобразовать возвращаемое значение localStorage.getItem("IsLoggedIn")
в фактическое логическое значение.
Сказав все это, обратите внимание, что вам следует избегать использования alert
, поскольку оно блокирует.