首先,让我说我知道我有一个自定义组件“Card”,我在我的一条路线“Home”中使用它。
Card.js
import s from 'Card.css';
class Card {
...
render(){
return (<div className={cx(className, s.card)}>
{this.props.children}
</div>);
}
}
卡片.css
.card {
display: block;
}
主页.js
<Card className={s.testCard}>
...
</Card>
主页.css
.testCard { display: none; }
我在这里遇到的一个问题是,即使我将显示设置为无,卡片仍然可见,因为浏览器中看似随机的 CSS 排序。即使禁用了 Javascript,此顺序也不会改变。
为了让 .testCard 在 .card 之后正确加载,我使用了“composes:”:
主页.css
.testCard {
composes: card from 'components/Card.css';
display: none;
}
显然这会导致 css-loader 识别出 .testCard 应该在 .card 之后加载。除非,如果我禁用 Javascript,页面会恢复到旧的行为:.card 在 .testCard 之后加载并且它再次变得可见。
让我们的页面将 .testCard 优先于在启用或不启用 Javascript 的情况下表现一致的卡的推荐方法是什么?