Почему отображается скрыть детали?

Почему отображается Скрыть детали? Имя правда

let name=true;
const template= (
      <div>
         <h1>Visibility Toggle</h1>
         <button >{name==true ? 'Show details': 'Hide details'}</button>
         <p></p>
      </div>
);

const appRoot=document.getElementById('app');

ReactDOM.render(template,appRoot);

Вы пытались назвать console.log, чтобы убедиться, что это правда? Если это действительно так, тогда "Показать подробности" должно отображаться

Bradey Whitlock 13.09.2018 21:45

Кроме того, сравнение вещей с true или false с == очень опасно в JS. (Многие говорят, что использование ==вообще опасно, и его следует избегать - я не согласен, но определенно есть некоторые подводные камни, о которых следует знать, и это самая большая из них.) Обратите внимание, в частности, что name == true выполняет тест нет, если name правдив. или ложь - для этого вы должны просто использовать гораздо более простой name в качестве теста в вашем тернарном операторе.

Robin Zigmond 13.09.2018 21:50

Я предполагаю, что это не полный пример, и ваша проблема возникает где-то в вашей логике. Вы можете попробовать console.log значение name и попытаться найти виновника. Кроме того, избегайте имен компонентов, начинающихся с маленькой буквы, так как вы не сможете использовать их внутри выражений JSX без повторной привязки их к переменным, начинающимся с заглавной буквы.

user6019272 13.09.2018 21:55

В какой среде вы это делаете?

devserkan 13.09.2018 22:05

Я изменил его на: name? 'Показать детали': 'Скрыть детали'

Szymon 13.09.2018 22:13

@Szymon Это сработало для вас?

Bradey Whitlock 13.09.2018 22:15

но когда я изменил имя на false, он все еще показывает "Показать детали"

Szymon 13.09.2018 22:16

Тогда кажется, что в вашей логике есть проблемы с установкой имени true. Можете ли вы показать больше своего кода или это все? Приведенный выше код должен работать.

Bradey Whitlock 13.09.2018 22:24

Также, если вы установите свое утверждение на true ? 'Show details': 'Hide details', это правильно? Потому что это абсолютно должно показать вам правильный результат.

Bradey Whitlock 13.09.2018 22:25

готов угадать, что у вас есть строка, а не логическое значение.

epascarello 13.09.2018 22:51

@BradeyWhitlock, вот почему я спросил среду :) Это странная проблема. Я не могу воспроизвести его с помощью своих локальных инструментов или любого приличного онлайн-сайта React, но если вы попробуете это с помощью фрагмента кода ответа Stackoverflow, вы сможете воспроизвести его. Я тоже в замешательстве.

devserkan 13.09.2018 22:51

Код в вашем вопросе - это фактический код, который вы используете?

epascarello 13.09.2018 22:57

да. Это мой код. Но в JavaScript переменные имеют автоматически скорректированный тип

Szymon 14.09.2018 17:44
3
13
45
0

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