Mithril.js多个css类

rea*_*eal 5 mithril.js

我是mithril.js的新手.我有一个div,如果ctrl.invalid()== true,我想添加类"invalid",如果ctrl.hidden()== true,我想添加"hidden".

如果我使用m('div', {class: ctrl.invalid() ? 'invalid' : '', class: ctrl.hidden()? 'hidden' : ''}),他们会互相覆盖.

我可以使用m('div', {class: [ctrl.invalid()?'invalid':'', ctrl.focused()?'focused':''].join(' ')})它,它会工作,但它看起来很乱.

有一个优雅的解决方案吗?谢谢.

Ros*_*nas 5

我建议您使用类名- 一个简单的实用程序。你可以用一种很好的方式定义你的类,它会为你合并所有的东西。在您的情况下,它将是:

const myMergedClasses = classNames({
    invalid: ctrl.invalid(), 
    focused: ctrl.focused()
});
m('div', { class: myMergedClasses })
Run Code Online (Sandbox Code Playgroud)

美丽的?!

  • @real 使用类名的好处是您可以使用*任何库* 并将其包含在您的项目中! (2认同)