У меня есть ситуация, когда стили JSS моей библиотеки компонентов MUI (Стили А) заменяют стили, предоставленные веб-сайтом потребителя (Стили B).
Стили A предназначены для перезаписи стилями B.
Возьмите этот минимальный пример:
Стили А (в библиотеке компонентов)
const styles = theme => ({
title: {
color: 'red'
}
});
const CollapsibleCard = ({classes, title}) => (
<Typography className = {classes.title} variant = {"h6"}>
{title}
</Typography>
);
export default withStyles(styles)(CollapsibleCard);
Стили B (на сайте Потребителя)
const styles = {
title: {
color: 'green'
},
};
const Page = ({classes}) => (
<CollapsibleCard
title = {"Testing"}
classes = {{
title: classes.title
}}
/>
);
export default withStyles(styles)(Page);
В результате элемент имеет каскадный стиль:
.CollapsibleCard-title-160 {
color: red;
}
.Page-title-157 {
color: green;
}
Где зеленый из стилей B заменяется красным из стилей A.
Редактировать: Причина этого порядка, по-видимому, заключается в порядке, в котором MUI (в частности, функция withStyle()) внедряет таблицы стилей.
Хотя это можно исправить (как указано в здесь), передав индекс в параметрах withStyles, то есть: export default withStyles(styles, {index: 1})(Page);. Это не кажется наиболее эффективным / действенным подходом в библиотечном контексте.
Есть ли способ диктовать порядок стилей MUI <стили библиотеки компонентов <потребительские стили без объявления индекса для каждого withStyles?
@JeevaJsb, это было некоторое время назад, но я не думаю, что мы нашли решение, выходящее за рамки указанного обходного пути. Не исследовались в более поздних версиях MUI
Я решил это, изменив порядок импорта в компоненте
@JeevaJsb, что имеет смысл; вы должны добавить это как ответ





В моем сценарии порядок импорта был неправильным. Таким образом, порядок стилей JSS неверен, и тема была переопределена.
Нам нужно убедиться, какой стиль следует применить. Исходя из этого, нам нужно изменить порядок импорта. Это поможет решить проблему.
Вы нашли решение?