Тернарный оператор не работает должным образом в реакции

Я ненавижу отвечать «работает для меня», но, может быть, детали в моей среде помогут вам определить проблему на вашем конце.

Я никогда раньше не использовал PyCharm, но я просто сделал тест на Mac 10.6.6, используя PyCharm 1.1.1, с Macports opencv + python26. Автозаполнение работало отлично для меня в первый раз. Я также закрыл и перезапустил PyCharm и смог автозаполнять, ничего не делая. У меня также не было проблем с автозаполнением для других собственных расширений, которые я пробовал как cjson, procname.

Pycharm 1.1.1 importing opencv with autocomplete [/g0].

Возможно, это проблема для платформы (Windows ?) или ошибка, связанная с более старой версией PyCharm?

-2
задан Erik L 18 March 2019 в 17:09
поделиться

1 ответ

JavaScript видит alert(...) (...) так, как будто вы хотите вызвать возвращаемое значение alert как функцию, но alert не возвращает функцию. Вот что говорит вам ошибка.

Если вы хотите вычислять несколько выражений в последовательности, вы можете использовать оператор запятой :

condition ? case1 : (alert('some message'), <Redirect ... />)
//                  ^                     ^                 ^

Вы можете достичь того же, если перемещение вызова alert перед оператором return, что также упрощает ваш код:

render() {
  const isLoggedIn = localStorage.getItem("IsLoggedIn");
  if (!isLoggedIn) {
    alert(...);
  }

  return <Route ... />;
}

Обратите внимание, что localStorage хранит только строковые значения, поэтому вам, вероятно, нужно преобразовать возвращаемое значение [ 118] к фактическому логическому значению.


Сказав все это, обратите внимание, что вам следует избегать использования alert, поскольку он блокирует.

0
ответ дан Felix Kling 18 March 2019 в 17:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: