Я хотел бы динамически импортировать модуль css в зависимости от пропуска, который проходит через компонент
Мой js файл выглядит так
import css from './MenuItem.module.styl'
/* .... */
const MenuItem = ({ node, isTitle, isHeader, pathname, hoveredItem }) => {
const linkClasses =
classNames(css.someClass, {[css.someOtherClass]: isHeader})
const subItemsContainerClasses = classNames(css.someClass, {[css.someOtherClass]: isHeader})
const itemsContainerClasses = classNames(css.someClass, {[css.someOtherClass]: isHeader})
return (
<div className={itemsContainerClasses}>
/* etc */
</div>
)
}
Это очень грязно, поэтому я хотел бы импортировать другой модуль css в зависимости от isHeader prop
Как и где мне это сделать? Он должен быть внутри компонента, но если я использую Effect, как я буду ссылаться на css
part
Edit:
Я пробовал это
useEffect(() => {
if (isheader) {
import css from './MenuItemHeader.module.styl'
} else {
import css from './MenuItemFooter.module.styl'
}
});
, но я получаю ошибка, что операторы импорта должны быть в начале файла
И я попытался
const [css, setCss] = useState({});
useEffect(() => {
if (isHeader) {
import('./MenuItemHeader.module.styl')
.then((response) => {
setCss(response)
})
} else {
import('./MenuItemFooter.module.styl')
.then((response) => {
setCss(response)
})
}
});
И я не получаю ошибок, но стили не применяются