Простые условные литералы шаблона ES6 - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать простой условный оператор, используя литералы шаблона.Я добавляю имя класса text-align-left или text-align-right и т. Д. На основе переменной align.Если переменная align пуста, имя класса не должно отображаться.

Я пытался:

className={ classnames( 
    someVar,
    ${align} ? text-align-${align} : ''`,
) }

className={ classnames( 
    someVar,
    `text-align-${align}`: align,
) }

className={ classnames( 
    someVar,
    [ `text-align-${align}` ]: align, 
) }

Последний не выдает никаких ошибок, но создал несколько классов, потому что align имеет больше значений.Если я выберу, например, aligb left, сохранить, затем выбрать align right, я получу text-align-left text-align-right вместо последнего выбранного.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

classnames позволяет вам условно включать имена классов, но вам нужно обернуть условные классы в {}

className={classnames( 
    someVar,
    { `text-align-${align}`: ${align} }
)}
0 голосов
/ 17 декабря 2018

Пожалуйста, проверьте это:

className={classnames( 
    someVar,
    (align ? ('text-align-' + align) : '')
)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...