你可以使用 <Select />
标签快速生成一个下拉选项框.你需要提供一个对象数组作为下拉选项的数据源,对象数组中每个对象序号包含 value
和 label
值.
在 <Select />
标签中添加 multi
属性可以使 Select 多选.
如果需要异步加载 options ,需要使用 asyncOptions
函数来代替 Array
填充数组.
asyncOptions
函数含有两个参数 String input
, Function callback
.当输入框的文本内容改变时 Function callback
会被回调.
名称 | 类型 | 缺省值 | 描述 |
---|---|---|---|
addLabelText | string | 'Add "{label}"?' | 配合 allowCreate 使用的显示文本 |
allowCreate | bool | false | 在可多选的 Select 下,允许新建一个选项(当输入一个不在 options 数组中的字段的时候,下方会显示 addLabelText 属性的内容以提示添加这个 item) |
asyncOptions | func | undefined | 获取下拉选项填充数组的回调函数,用于异步加载 |
autoload | bool | true | 是否让异步加载的 options 自动加载 |
backspaceRemoves | bool | true | 是否允许使用键盘上 backspace 按键来删除已经选中的项 |
cacheAsyncResults | bool | true | enables the options cache for asyncOptions (default: true ) |
clearable | bool | true | should it be possible to reset value |
clearAllText | string | 'Clear all' | title for the "clear" control when multi is true |
clearValueText | string | 'Clear value' | title for the "clear" control |
delimiter | string | ',' | delimiter to use to join multiple values |
disabled | bool | false | 当为 true 的时候 组件不可用 |
filterOption | func | undefined | method to filter a single option: function(option, filterString) |
filterOptions | func | undefined | method to filter the options array: function([options], filterString, [values]) |
ignoreCase | bool | true | whether to perform case-insensitive filtering |
inputProps | object | {} | custom attributes for the Input (in the Select-control) e.g: {'data-foo': 'bar'} |
isLoading | bool | false | 当为 true 时,显示一个 loading 的加载圈(比如在异步加载 options 时) |
labelKey | string | 'label' | the option property to use for the label |
matchPos | string | 'any' | (any, start) match the start or entire string when filtering |
matchProp | string | 'any' | (any, label, value) which option property to filter on |
multi | bool | undefined | 下拉选项可以多选 |
name | string | undefined | field name, for hidden <input /> tag |
newOptionCreator | func | undefined | factory to create new options when allowCreate is true |
noResultsText | string | 'No results found' | placeholder displayed when there are no matching search results |
onBlur | func | undefined | onBlur handler: function(event) {} |
onChange | func | undefined | onChange handler: function(newValue) {} |
onFocus | func | undefined | onFocus handler: function(event) {} |
onInputChange | func | undefined | onInputChange handler: function(inputValue) {} |
onOptionLabelClick | func | undefined | onClick handler for value labels: function (value, event) {} |
optionRenderer | func | undefined | function which returns a custom way to render the options in the menu |
options | array | undefined | 下拉选项的填充数组 |
placeholder | string | 'Select ...' | 当下拉框没有内容时默认显示的文本 |
searchable | bool | true | Select 的搜索功能是否可用 |
searchingText | string | 'Searching...' | message to display whilst options are loading via asyncOptions, or when isLoading is true |
searchPromptText | string | 'Type to search' | label to prompt for search input |
value | any | undefined | 初始化 select 的默认选中值,对应 options 选项的 value |
valueKey | string | 'value' | the option property to use for the value |
valueRenderer | func | undefined | function which returns a custom way to render the value selected |
React-Select v0.9.1版本: https://github.com/JedWatson/react-select