react classnames if else



我将我的文件Order.css改为Order.module.css。现在我需要把这个条件从

const firstNameClass = firstNameInputHasError ? 'form-control invalid' : 'form-control';
...
<div className={firstNameClass}>
...
</div>

在这样的地方

const firstNameClass = firstNameInputHasError ? classes['form-control'] + classes['invalid'] : classes['form-control'];

当文件名为Order.css时,第一行可以正常工作。第二行不行


更新。感谢chenc推荐的classnames包


我的解决方案
import classes from './Order.module.css';
import classNames from "classnames/bind";
let classNameBound = classNames.bind(classes);
const firstNameClass = classNameBound(
classes["form-control"],
{invalid: firstNameInputHasError}
);

第二个不带类名的解决方案package

const firstNameClass = `${classes["form-control"]} ${firstNameInputHasError ?  classes.invalid : ''}`;

为什么不用类名呢?这是判断使用类

的条件的一个很好的包。

它应该在一个函数中,你不需要使用+:

const firstNameClass = firstNameInputHasError
? classes(["form-control invalid"])
: classes(["form-control"]);

或者简而言之:

const firstNameClass = classes(["form-control", {
'invalid': firstNameInputHasError
}
]);

相关内容

  • 没有找到相关文章

最新更新