Selectコンポーネントの標準の白い背景色を緑に変更するとします。
私の試み...
<Select
style={{ backgroundColor: 'green' }}>
// Options...
</Select>
...それをしませんでした。
誰かが私を正しい方向に向けることができますか?
[編集]
私は Jesper We から提案されたアプローチを使用することになりました。
すべての選択範囲の色を上書きしています...
.ant-select-selection {
background-color: transparent;
}
...次に、Selectコンポーネントを個別にスタイル設定できます。
<Select>
は<div>
sのセット全体をレンダリングします。結果のHTML要素ツリーを見て、何をしているかを理解する必要があります。これは、style属性では実行できません。CSSで実行する必要があります。
背景色を付ける適切な場所は
.ant-select-selection {
background-color: green;
}
これにより、すべての選択が緑になります。選択ごとに異なる色が必要な場合は、className
sを個別に指定します。
Select要素を含むフォームの場合、render
にいくつかのコードがあります。
const stateTasksOptions =
this.tasksStore.filters.init.state.map(item =>
<Select.Option key={item.id} value={item.id} title={<span className={`${item.id}Label`}>{item.title}</span>}>
<span className={`${item.id}Label`}>{item.title}</span> - <span class="normal-text">{item.help}</span>
</Select.Option>
)
return (
....
<Select
mode="multiple"
value={this.tasksStore.filters.selected.state.map(d => d)}
onChange={this.handleTasksStatus}
optionLabelProp="title"
>
{stateTasksOptions}
</Select>
....
)
そして、色付けのためのいくつかのCSS。
スタイルの代わりにdropdownStyleを試してください。
<Select
dropdownStyle={{ backgroundColor: 'green' }}>
// Options...
</Select>
dropdownStyleは、選択した小道具の1つです。
参照: antd select
上記のすべての回答では、タグのスタイルを条件付きで変更することはできませんが、以下のアプローチでは変更できます。
選択ドロップダウンのタグのように、ハックしてスタイルを変更できます。 2つの引数を取るselectのdropdownRenderを使用できます
propsのchildrenプロパティを使用して各タグに到達し、スタイルを変更します。必要に応じて、スタイルを条件に応じて変更できます。
以下の参照は、コードサンドボックスのサンプルリンクです。
それを行うには効率的な方法ではないかもしれませんが、今のところこれを使用してビジネス要件を満たすことができます。
ありがとう
彼らは、ant設計のv4でこの機能を実装しました。
https://github.com/ant-design/ant-design/pull/21064
しかし、v3-> v4から盲目的にアップグレードする前に注意してください-多くが変更されました:
https://github.com/ant-design/ant-design/issues/20661