#html #css #reactjs
#HTML #css #reactjs
Вопрос:
У меня есть файл React, в этом файле есть глобальное myVar
значение, которое может быть либо true, либо false.
В рендере у меня есть несколько кнопок. Их стиль находится в другом связанном файле CSS.
Я хотел бы иметь возможность изменять этот стиль в зависимости от значения myVar
.
Это можно было бы сделать любым способом: изменить название классов кнопок, добавить стиль в файле React и т.д.
Я попытался поиграть с этим и заставить его работать, но мне это не удалось.
Соответствующая часть рендеринга:
<a className = "firstsOne" onClick={() => this.handleClick("bubbleSort")}> Bubble Sort </a>
<a onClick={() => this.handleClick("selectionSort")}> Selection Sort </a>
<a onClick={() => this.handleClick("insertionSort")}> Insertion Sort </a>
<a onClick={() => this.handleClick("quickSort")}> Quick Sort </a>
<a onClick={() => this.handleClick("mergeSort")}> Merge Sort </a>
Соответствующая часть CSS:
a {
font-size: 16px;
line-height: 3.14286;
font-weight: 400;
letter-spacing: -.01em;
font-family: "SF Pro Text","Myriad Set Pro","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;
color: #9a9a95;
margin-right: 120px;
}
Есть идеи, как этого добиться?
Комментарии:
1. Пожалуйста, поделитесь кодом, чтобы мы могли помочь вам надлежащим образом.
Ответ №1:
Вы могли бы, например, условно изменить значение на className
основе значения вашей переменной.
Допустим, у вас есть 2 варианта класса CSS, .option1
и .option2
.
В вашем компоненте, основываясь на значении myVar
, вы могли бы сделать:
const MyButton = ({ myVar }) => {
return (
<button className={myVar === true ? 'option1' : 'option2'}>
Example button
</button>
);
};
Комментарии:
1. Спасибо. Это сработало в первый раз, например, при первой загрузке страницы, основываясь на значении myVar, он показывал разные стили. Но с этого момента, если значение myVar снова изменилось в функциях, обновление в стилях не отображалось. Есть идеи, как это решить?
2. Как вы обновляете значение переменной? Вы должны иметь переменную в качестве переменной состояния и обновлять ее значение с помощью функции установки.
3. Отлично! Если это решило вашу проблему, не забудьте принять в качестве ответа