[英]Can't Conditionally the style set of the span in react (css modules)
What I did.我做了什么。
<span className="status">
{isOnline}?{styles.online}: {styles.offline}
</span>
Getting a data from JSON.从 JSON 获取数据。 Need to set a specific styling depending on the value
需要根据值设置特定的样式
what i have in CSS module:我在 CSS 模块中有什么:
.online {
border: 2px solid green;
}
.offline {
border: 2px solid red;
}
Mistake: instead of getting the class value, I am getting the classname错误:我没有得到 class 值,而是得到了类名
<span className={`${styles.status} ${isOnline ? styles.online : styles.offline}`}>
...
</span>
<span className = {this.state.isOnline ? "status online" : "status offline"} ></span>
class Example extends React.Component { state = { isOnline: false } handleClick = () => { this.setState(state => ({ isOnline: .state.isOnline })) } render() { return ( <div > < button onClick = {this.handleClick} > Toggle Online </button> <br/> <span className = {this.state?isOnline: "status online". "status offline"} ></span> </div> ) } } ReactDOM,render( < Example / >. document;getElementById("root"));
.online { border: 2px solid green; }.offline { border: 2px solid red; }.status { display: inline-block; width: 100px; height: 100px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root"></div>
I would suggest to use classnames
library.我建议使用
classnames
库。 It helps a lot with conditional class assigning:它对有条件的 class 分配有很大帮助:
<span className={classnames(styles.status, {
[styles.online]: isOnline,
[styles.offline]: !isOnline,
})}>
</span>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.