react选择 v2(更新)
这个新版本引入了一个新的styles-api
和一些其他的重大变化。
自定义样式
使用样式props使用自定义 css 为单个组件设置样式。
const colourStyles = {
control: styles => ({ ...styles, backgroundColor: 'white' }),
option: (styles, { data, isDisabled, isFocused, isSelected }) => {
const color = chroma(data.color);
return {
...styles,
backgroundColor: isDisabled ? 'red' : blue,
color: '#FFF',
cursor: isDisabled ? 'not-allowed' : 'default',
...
};
},
...
};
export default () => (
<Select
defaultValue={items[0]}
label="Single select"
options={items}
styles={colourStyles}
/>
);
现在项目网站上有更好的文档和更清晰的示例:
https://react-select.com/upgrade-guide#new-styles-api
https://react-select.com/home#custom-styles
https://react-select.com/styles#styles
react-select v1(旧答案 - 已弃用)
您可以为组件提供自定义 className 属性,该属性将添加到外部容器的基础 .Select className 中。内置选项渲染器还支持自定义类名。
将您的自定义className
作为属性添加到选项数组中的对象:
const options = [
{label: "one", value: 1, className: 'custom-class'},
{label: "two", value: 2, className: 'awesome-class'}
// more options...
];
...
<Select options={options} />
menuRenderer 属性可用于覆盖默认的下拉选项列表。
optionClassNameString
用于选项的类名
示例:react-select/master/src/utils/defaultMenuRenderer.js