Во-первых, позвольте мне сказать, что я понимаю, что у меня есть пользовательский компонент "Карта", который я использую в одном из своих маршрутов, "Домой".
Card.js
import s from 'Card.css';
class Card {
...
render(){
return (<div className={cx(className, s.card)}>
{this.props.children}
</div>);
}
}
Card.css
.card {
display: block;
}
Home.js
<Card className={s.testCard}>
...
</Card>
Home.css
.testCard { display: none; }
Проблема, с которой я здесь столкнулся, заключается в том, что карта оставалась видимой, даже если я установил отображение на ноль, из-за случайного порядка CSS в браузере. Этот порядок не изменился, даже если Javascript был отключен.
Чтобы правильно загрузить .testCard после .card, я использовал «composes:»:
Home.css
.testCard {
composes: card from 'components/Card.css';
display: none;
}
Очевидно, это заставляет css-loader распознавать, что .testCard должен загружаться после .card. За исключением случаев, если я отключаю Javascript, страница возвращается к старому поведению: .card загружается после .testCard и снова становится видимым.
Каков рекомендуемый способ получения нашей страницей приоритетов .testCard над картой, которая работает согласованно с включенным Javascript или без него?