У меня есть следующий jsx
код (react-semantic-ui
) в методе render
:
{!this.props.loading &&
<ControlRow>
<Grid.Column width={5}>
<Dropdown
multiple
fluid
selection
options={myOptions}
onChange={this.navigateToMyFunc}
/>
...
...
И я использую styled-components
для оформления своих элементов:
https://github.com/styled-components/styled-components
К сожалению, единственный рабочий стиль для Dropdown
из-за некоторых странных особенностей среды является косвенным от ControlRow
:
const ControlsRow = styled(Grid.Row)`
.ui.multiple.dropdown > .label {
color: white !important;
background-color: #2185d0;
}
`
См. Также следующий поток: Раскрывающийся список в semanti c Пользовательский интерфейс не может быть выполнен с множественным типом выбора, если он обернут стилевыми компонентами
Теперь Dropdown
, как вы можете видеть, имеет тип multiple
. Каждый выбранный элемент должен быть окрашен в соответствии с указанными в myOptions
опциях. Я могу передать myOptions
в ControlRow
, что сделает массив доступным в нем, но я не уверен, как написать часть styled-components
:
.ui.multiple.dropdown > .label {
color: white !important;
background-color: ${props => props.myOptions..??};
}
Мне нужно также знать, какой элемент выбрать правильный myOptions
цвет. Вот как это выглядит:
Сейчас это просто всегда blue
, но мне нужно, чтобы он был раскрашен в соответствии с каждым вариантом.
Обновление
Похоже, что это отсутствует в semantic-ui-react
- раскраска с помощью hex
- кодов (допускается только несколько регулярных названий цветов) - поэтому я отправил эта функция для их github
:
https://github.com/Semantic-Org/Semantic-UI-React/issues/3889