[英]Adding classNames to odd and even elements in ReactJs
I am trying to add the className "direction-r" to the divs in the "timeline" list that are even and className "direction-l" to every other item (odd). 我正在尝试将className“ direction-r”添加到偶数“ timeline”列表中的div,并将className“ direction-l”添加到其他所有项(奇数)。 I know how it can be achieved using JQuery but not sure how to get it done using ReactJs. 我知道如何使用JQuery实现它,但不确定如何使用ReactJs完成它。 I am quite new to ReactJS and using it for the first time on a large project. 我对ReactJS并不陌生,并在大型项目中首次使用它。 Below is my code: 下面是我的代码:
class MainTimeline extends React.Component {
render() {
return (
<div className="timeline-container">
<h3>Timeline</h3>
<ul className="timeline">
<li>
<div className="direction-r">
<div className="title-wrapper">
<span className="title professional">
Declared bankrupcy
</span>
<span className="time-wrapper"><span class="time">2015 - present</span></span>
</div>
<div className="detail">
<p className="place">Corporation</p>
</div>
</div>
</li>
<li>
<div className="direction-l">
<div className="title-wrapper">
<span className="title academic">
Declared bankrupcy
</span>
<span className="time-wrapper"><span class="time">2015 - present</span></span>
</div>
<div className="detail">
<p className="place">Corporation</p>
</div>
</div>
</li>
</ul>
</div>
);
}
}
Thanks 谢谢
Instead of modifying the DOM, React allows you to define rendering logic inside the render method before the DOM is created: 无需修改DOM,React允许您在创建DOM之前在render方法内定义渲染逻辑:
var listItems
for( var i=0; i<4; i++) {
listItems.push(
<li key={i}>
<div className={'direction-'+(i%2 ? 'r':'l')}>
<div className="title-wrapper">
<span className="title professional">
Declared bankrupcy
</span>
<span className="time-wrapper"><span class="time">2015 - present</span></span>
</div>
<div className="detail">
<p className="place">Corporation</p>
</div>
</div>
</li>
)
}
return (
<div className="timeline-container">
<h3>Timeline</h3>
<ul className="timeline">
{listItems}
</ul>
</div>
)
This should work. 这应该工作。
class MainTimeline extends React.Component {
render() {
var isEven = (your even odd logic);
var directionClass = isEven ? 'direction-r' : 'direction-l';
return (
<div className="timeline-container">
<h3>Timeline</h3>
<ul className="timeline">
<li>
<div className={directionClass}>
<div className="title-wrapper">
<span className="title professional">
Declared bankrupcy
</span>
<span className="time-wrapper"><span class="time">2015 - present</span></span>
</div>
<div className="detail">
<p className="place">Corporation</p>
</div>
</div>
</li>
</ul>
</div>
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.