Javascript 在三元运算符之后在className中组合文本和JS
我在将文本和CSS样式组合为三元/条件后的类名称时遇到问题。我看过这么多不同的例子,但似乎没有任何效果Javascript 在三元运算符之后在className中组合文本和JS,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,我在将文本和CSS样式组合为三元/条件后的类名称时遇到问题。我看过这么多不同的例子,但似乎没有任何效果 <div className={key === active ? ({ 'column ' + styles.Active}) : ('column ')} key={key}> 有人能告诉我如何正确地格式化吗?我需要列和样式。如果key==Active,则显示活动类名 提前感谢您如果您同意添加可以使用的npm包 从“classNames”导入类名; ... =======
<div className={key === active ? ({ 'column ' + styles.Active}) : ('column ')} key={key}>
有人能告诉我如何正确地格式化吗?我需要列和样式。如果key==Active,则显示活动类名
提前感谢您如果您同意添加可以使用的npm包
从“classNames”导入类名;
...
=================
如果您不想添加npm包
如果您同意添加npm包,您可以使用
从“classNames”导入类名;
...
=================
如果您不想添加npm包
为了可读性,最好将其提取到变量中。不过,三元可以很容易地进行内联 字符串文本 对于那些喜欢ES6的人+
//三元
const className=`column${(key==active)?styles.active:'}`;
//或者更具可读性
const className='列';
如果(键===活动){
className+=`${style.Active}`;
}
...
串联
目前看来,字符串连接速度更快:(
//三元
常量className='column'+((键===active)?''+styles.active:'')};
//或者更具可读性
const className='列';
如果(键===活动){
className+=''+样式。活动;
}
...
为了可读性,最好将其提取到变量中。不过,三元可以很容易地内联
字符串文本
对于那些喜欢ES6的人+
//三元
const className=`column${(key==active)?styles.active:'}`;
//或者更具可读性
const className='列';
如果(键===活动){
className+=`${style.Active}`;
}
...
串联
目前看来,字符串连接速度更快:(
//三元
常量className='column'+((键===active)?''+styles.active:'')};
//或者更具可读性
const className='列';
如果(键===活动){
className+=''+样式。活动;
}
...
试试这一个。取出列,只按键操作三元
<div className={'column ' + (key === active ? styles.Active : '')} key={key}>
试试这一个。取出列,只按键操作三元
<div className={'column ' + (key === active ? styles.Active : '')} key={key}>
这是相同的解决方案,但是最好的方法
<div className={key === active ? `column ${styles.Active}` : 'column'}>
它更具可读性、自我解释性和谨慎性,这是编写代码的方式,而不是其他方式
className需要一个字符串,而您给了它一个对象{'column'+styles.Active},这是错误的
另外,我不理解您的逻辑。style.Active将是一个对象,它属于style(style-object)。如果是这样,您又做错了
<div className="column" style={key === active ? styles.Active : {}}>
这是相同的解决方案,但是最好的方法
<div className={key === active ? `column ${styles.Active}` : 'column'}>
它更具可读性、自我解释性和谨慎性,这是编写代码的方式,而不是其他方式
className需要一个字符串,而您给了它一个对象{'column'+styles.Active},这是错误的
另外,我不理解您的逻辑。style.Active将是一个对象,它属于style(style-object)。如果是这样,您又做错了
<div className="column" style={key === active ? styles.Active : {}}>
这应该行得通
这应该行得通