【发布时间】:2019-11-25 03:48:56
【问题描述】:
我正在通过 ReactJS 应用程序中的对象进行映射。在该映射的每个元素之间,我添加了一个带有简单括号 | 的跨度。
代码如下:
renderSecurityModes = (securityKey: string): JSX.Element => {
const { user } = this.props;
return (
<div key={securityKey} className="users-overview-screen__no-last-child">
{user && user.security && user.security[securityKey as SecurityMode] && (
<Fragment>
<span className="font-weight-medium mr-3 text-uppercase">{securityKey}</span>
<span className="text-border-gray mx-3">|</span>
</Fragment>
)}
</div>
);
};
问题:
我希望映射的项目在它们之间有|,但最后一个,我想display: none
所以,我添加了一个小类来做到这一点。显示除最后一个孩子之外的所有内容。但由于映射发生,它认为每个 carret 都是last-child:
这里是scss:
.users-overview-screen__no-last-child {
span:last-child {
display: none;
}
}
DOM 结构:
<div class="display-flex>
<span>Mapped Item 1</span>
<div class=“users-overview-screen__no-last-child”>
<span>|</span>
</div>
<span>Mapped Item 2</span>
<div class=“users-overview-screen__no-last-child”>
<span>|</span>
</div>
<span>Mapped Item 3</span>
<div class=“users-overview-screen__no-last-child”>
<span>|</span>
</div>
</div>
在上述场景中,我希望映射项 3 中的最后一个 carret 根本不出现。但是用我目前的 scss,没有出现 carret。
关于如何告诉班级只省略绝对最后一个的任何想法?
【问题讨论】:
标签: css reactjs typescript sass