#javascript #reactjs
Вопрос:
У меня возникла проблема с применением модуля CSS к компоненту React (в приложении, созданном с помощью «create-react-app» и с использованием webpack). У меня есть элемент, который имеет атрибут «Имя класса» и «идентификатор». Стиль «Имя класса» применяется, но когда я пытаюсь «переопределить» его более конкретным стилем «идентификатор», это не срабатывает. Мой вариант использования заключается в том, что более конкретное переопределение стиля находится в отдельном файле, но проблема существует с двумя стилями в одном файле CSS.
Вот мой компонент:
import React from 'react';
import styles from './styles.module.css'
class QuestionTag extends React.Component {
render() {
let c1 = "qumultiline";
return (
<>
<div className={`${styles[c1]}`} id={`${c1}`}>
Hello there
</div>
</>
);
}
}
export default QuestionTag;
Вот как визуализируется элемент:
<div class="styles_qumultiline__iXUv1" id="qumultiline">Hello there</div>
Вот styles.module.css:
.qumultiline {
background-color: #006699;
color: white;
}
div#qumultiline {
background-color: red;
color: red;
}
Есть ли что-то особенное, что мне нужно сделать, чтобы переопределить «Имя класса»?
Комментарии:
1. Должно ли это быть
id={
${c1}}
? Или даже простоid={c1}
?2. вы также используете пользовательский интерфейс Material, так не следует ли вам использовать
useStyles
крючок?3. @RichardHpaI упростил, удалив материал-пользовательский интерфейс
4. Есть ли причина, по которой вы не добавляете идентификатор так же, как вы добавляете свой класс? т. е. вы не говорите
id={
${стили[c1]}}
5. @RichardHpa, потому что значение » id » — это строка, а не стиль…? Не уверен, что назначение стиля «идентификатору» имеет какой-либо смысл.