组件演示
[{"title":"基本使用","id":"components-select2-demo-basic","tags":[],"filepath":"site/components/select2/demo/basic.md","directory":"components/select2/demo","filename":"basic","meta":{"title":"基本使用","description":"\n<p>基本使用。</p>\n","order":"0","filepath":"site/components/select2/demo/basic.md","filename":"basic","directory":"components/select2/demo","id":"components-select2-demo-basic","template":"demos","html":"<script>(function(){\"use strict\";\n\nvar _uxcore = require(\"uxcore\");\n\nvar Option = _uxcore.Select.Option;\n\nReactDOM.render(React.createElement(\n _uxcore.Select,\n { defaultValue: \"lucy\", style: { width: 200 }, dropdownClassName: \"kuma-select2-selected-has-icon\" },\n React.createElement(\n Option,\n { value: \"jack\" },\n \"Jack\"\n ),\n React.createElement(\n Option,\n { value: \"lucy\" },\n \"Lucy\"\n ),\n React.createElement(\n Option,\n { value: \"disabled\", disabled: true },\n \"Disabled\"\n ),\n React.createElement(\n Option,\n { value: \"yiminghe\" },\n \"yiminghe\"\n )\n), document.getElementById('components-select2-demo-basic'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">\"lucy\"</span> <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">200</span> }} <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"jack\"</span>></span>Jack<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"lucy\"</span>></span>Lucy<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"disabled\"</span> <span class=\"hljs-attribute\">disabled</span>></span>Disabled<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"yiminghe\"</span>></span>yiminghe<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n, document.getElementById('components-select2-demo-basic'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"尺寸","id":"components-select2-demo-size","tags":[],"filepath":"site/components/select2/demo/size.md","directory":"components/select2/demo","filename":"size","meta":{"title":"尺寸","description":"\n<p>提供 large、middle、small 三种尺寸</p>\n","order":"1","filepath":"site/components/select2/demo/size.md","filename":"size","directory":"components/select2/demo","id":"components-select2-demo-size","template":"demos","html":"<script>(function(){'use strict';\n\nvar _uxcore = require('uxcore');\n\nvar Option = _uxcore.Select.Option;\n\nfunction handleChange(value) {\n console.log('selected ' + value);\n}\n\nvar select = React.createElement(\n _uxcore.Select,\n { defaultValue: 'lucy', showSearch: false, style: { width: 200, display: 'block', marginBottom: '4px' }, onChange: handleChange, dropdownClassName: 'kuma-select2-selected-has-icon' },\n React.createElement(\n Option,\n { value: 'jack' },\n 'jack'\n ),\n React.createElement(\n Option,\n { value: 'lucy' },\n 'lucy'\n ),\n React.createElement(\n Option,\n { value: 'disabled', disabled: true },\n 'disabled'\n ),\n React.createElement(\n Option,\n { value: 'yiminghe' },\n 'yiminghe'\n )\n);\n\nReactDOM.render(React.createElement(\n 'div',\n null,\n ['large', 'middle', 'small'].map(function (size) {\n return React.cloneElement(select, {\n size: size\n });\n })\n), document.getElementById('components-select2-demo-size'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-title\">handleChange</span>(<span class=\"hljs-params\">value</span>) </span>{\n <span class=\"hljs-built_in\">console</span>.log(<span class=\"hljs-string\">`selected <span class=\"hljs-subst\">${value}</span>`</span>);\n}\n\n<span class=\"hljs-keyword\">const</span> select = (\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">\"lucy\"</span> <span class=\"hljs-attribute\">showSearch</span>=<span class=\"hljs-value\">{false}</span> <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">200</span>, <span class=\"hljs-attribute\">display:</span> '<span class=\"hljs-attribute\">block</span>', <span class=\"hljs-attribute\">marginBottom:</span> '<span class=\"hljs-attribute\">4px</span>' }} <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{handleChange}</span> <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"jack\"</span>></span>jack<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"lucy\"</span>></span>lucy<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"disabled\"</span> <span class=\"hljs-attribute\">disabled</span>></span>disabled<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"yiminghe\"</span>></span>yiminghe<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n)</span>;\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">div</span>></span>\n {['large', 'middle', 'small'].map(size => React.cloneElement(select, {\n size,\n }))}\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">div</span>></span>\n, document.getElementById('components-select2-demo-size'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"不显示搜索框","id":"components-select2-demo-search","tags":[],"filepath":"site/components/select2/demo/search.md","directory":"components/select2/demo","filename":"search","meta":{"title":"不显示搜索框","description":"\n<p>当不需要搜索功能时,可以将 showSearch 置为 false</p>\n","order":"1","filepath":"site/components/select2/demo/search.md","filename":"search","directory":"components/select2/demo","id":"components-select2-demo-search","template":"demos","html":"<script>(function(){\"use strict\";\n\nvar _uxcore = require(\"uxcore\");\n\nvar Option = _uxcore.Select.Option;\n\nfunction handleChange(value) {\n console.log(\"selected \" + value);\n}\n\nReactDOM.render(React.createElement(\n _uxcore.Select,\n { defaultValue: \"lucy\", showSearch: false, style: { width: 200 }, onChange: handleChange, dropdownClassName: \"kuma-select2-selected-has-icon\" },\n React.createElement(\n Option,\n { value: \"jack\" },\n \"jack\"\n ),\n React.createElement(\n Option,\n { value: \"lucy\" },\n \"lucy\"\n ),\n React.createElement(\n Option,\n { value: \"disabled\", disabled: true },\n \"disabled\"\n ),\n React.createElement(\n Option,\n { value: \"yiminghe\" },\n \"yiminghe\"\n )\n), document.getElementById('components-select2-demo-search'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-title\">handleChange</span>(<span class=\"hljs-params\">value</span>) </span>{\n <span class=\"hljs-built_in\">console</span>.log(<span class=\"hljs-string\">`selected <span class=\"hljs-subst\">${value}</span>`</span>);\n}\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">\"lucy\"</span> <span class=\"hljs-attribute\">showSearch</span>=<span class=\"hljs-value\">{false}</span> <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">200</span> }} <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{handleChange}</span> <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"jack\"</span>></span>jack<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"lucy\"</span>></span>lucy<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"disabled\"</span> <span class=\"hljs-attribute\">disabled</span>></span>disabled<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"yiminghe\"</span>></span>yiminghe<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n, document.getElementById('components-select2-demo-search'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"多选","id":"components-select2-demo-multiple","tags":[],"filepath":"site/components/select2/demo/multiple.md","directory":"components/select2/demo","filename":"multiple","meta":{"title":"多选","description":"\n<p>多选,从已有条目中选择(scroll the menu)</p>\n","order":"2","filepath":"site/components/select2/demo/multiple.md","filename":"multiple","directory":"components/select2/demo","id":"components-select2-demo-multiple","template":"demos","html":"<script>(function(){'use strict';\n\nvar _uxcore = require('uxcore');\n\nvar Option = _uxcore.Select.Option;\n\nvar children = [];\nfor (var i = 10; i < 36; i++) {\n children.push(React.createElement(\n Option,\n { key: i.toString(36) + i },\n i.toString(36) + i\n ));\n}\n\nfunction handleChange(value) {\n console.log('selected ' + value);\n}\n\nReactDOM.render(React.createElement(\n _uxcore.Select,\n { multiple: true,\n style: { width: 400 },\n dropdownClassName: 'kuma-select2-selected-has-icon',\n defaultValue: ['a10', 'c12'], onChange: handleChange\n },\n children\n), document.getElementById('components-select2-demo-multiple'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\n<span class=\"hljs-keyword\">const</span> children = [];\n<span class=\"hljs-keyword\">for</span> (<span class=\"hljs-keyword\">let</span> i = <span class=\"hljs-number\">10</span>; i < <span class=\"hljs-number\">36</span>; i++) {\n children.push(<span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">key</span>=<span class=\"hljs-value\">{i.toString(36)</span> + <span class=\"hljs-attribute\">i</span>}></span>{i.toString(36) + i}<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>)</span>;\n}\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-title\">handleChange</span>(<span class=\"hljs-params\">value</span>) </span>{\n <span class=\"hljs-built_in\">console</span>.log(<span class=\"hljs-string\">`selected <span class=\"hljs-subst\">${value}</span>`</span>);\n}\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">multiple</span>\n <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">400</span> }}\n <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>\n <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">{['a10',</span> '<span class=\"hljs-attribute\">c12</span>']} <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{handleChange}</span>\n ></span>\n {children}\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n, document.getElementById('components-select2-demo-multiple'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"多选 - 单行展示","id":"components-select2-demo-multiple-singleline","tags":[],"filepath":"site/components/select2/demo/multiple-singleline.md","directory":"components/select2/demo","filename":"multiple-singleline","meta":{"title":"多选 - 单行展示","description":"\n<p>在少数情况下,可能不希望多选框展开,这时可以使用样式覆盖。<br>我们不推荐这种交互形式,因为选择区域的收缩,可能会损失一些功能。</p>\n","order":"3","filepath":"site/components/select2/demo/multiple-singleline.md","filename":"multiple-singleline","directory":"components/select2/demo","id":"components-select2-demo-multiple-singleline","template":"demos","html":"<script>(function(){'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uxcore = require('uxcore');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Option = _uxcore.Select.Option;\n;\n\nvar children = [];\nfor (var i = 10; i < 36; i++) {\n children.push(React.createElement(\n Option,\n { key: i.toString(36) + i },\n i.toString(36) + i\n ));\n}\n\nvar Demo = function (_React$Component) {\n _inherits(Demo, _React$Component);\n\n function Demo(props) {\n _classCallCheck(this, Demo);\n\n var _this = _possibleConstructorReturn(this, (Demo.__proto__ || Object.getPrototypeOf(Demo)).call(this, props));\n\n _this.state = {\n value: ['a10', 'c12']\n };\n return _this;\n }\n\n _createClass(Demo, [{\n key: 'handleChange',\n value: function handleChange(value) {\n this.setState({\n value: value\n });\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(\n _uxcore.Select,\n { multiple: true,\n dropdownClassName: 'kuma-select2-selected-has-icon',\n className: (0, _classnames2.default)({\n 'single-line': this.state.value.length > 6\n }),\n style: { width: 400 },\n value: this.state.value, onChange: this.handleChange.bind(this)\n },\n children\n );\n }\n }]);\n\n return Demo;\n}(React.Component);\n\nReactDOM.render(React.createElement(Demo, null), document.getElementById('components-select2-demo-multiple-singleline'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n<span class=\"hljs-keyword\">import</span> classnames <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'classnames'</span>;;\n\n<span class=\"hljs-keyword\">const</span> children = [];\n<span class=\"hljs-keyword\">for</span> (<span class=\"hljs-keyword\">let</span> i = <span class=\"hljs-number\">10</span>; i < <span class=\"hljs-number\">36</span>; i++) {\n children.push(<span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">key</span>=<span class=\"hljs-value\">{i.toString(36)</span> + <span class=\"hljs-attribute\">i</span>}></span>{i.toString(36) + i}<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>)</span>;\n}\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class</span> <span class=\"hljs-title\">Demo</span> <span class=\"hljs-keyword\">extends</span> <span class=\"hljs-title\">React</span>.<span class=\"hljs-title\">Component</span> </span>{\n constructor(props) {\n <span class=\"hljs-keyword\">super</span>(props);\n <span class=\"hljs-keyword\">this</span>.state = {\n value: [<span class=\"hljs-string\">'a10'</span>, <span class=\"hljs-string\">'c12'</span>],\n };\n }\n\n handleChange(value) {\n <span class=\"hljs-keyword\">this</span>.setState({\n value,\n });\n }\n\n render() {\n <span class=\"hljs-keyword\">return</span> (<span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">multiple</span>\n <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>\n <span class=\"hljs-attribute\">className</span>=<span class=\"hljs-value\">{classnames({</span>\n '<span class=\"hljs-attribute\">single-line</span>'<span class=\"hljs-attribute\">:</span> <span class=\"hljs-attribute\">this.state.value.length</span> ></span> 6,\n })}\n style={{ width: 400 }}\n value={this.state.value} onChange={this.handleChange.bind(this)}\n >\n {children}\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>)</span>;\n }\n}\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Demo</span> /></span>\n, document.getElementById('components-select2-demo-multiple-singleline'));</span></code></pre></div><style type=\"text/css\">.single-line .kuma-select2-selection--multiple {\n position: relative;\n overflow: hidden;\n}\n\n.single-line .kuma-select2-selection--multiple .kuma-select2-selection__rendered {\n position: absolute;\n right: 20px;\n white-space: nowrap;\n}\n\n.single-line .kuma-select2-selection--multiple .kuma-select2-selection__rendered .kuma-select2-selection__choice {\n float: none;\n display: inline-block;\n}\n.single-line .kuma-select2-selection--multiple .kuma-select2-selection__rendered .kuma-select2-search--inline {\n float: none;\n display: inline-block;\n vertical-align: top\n}</style><div class=\"highlight\"><pre><code class=\"css\"><span class=\"hljs-class\">.single-line</span> <span class=\"hljs-class\">.kuma-select2-selection--multiple</span> <span class=\"hljs-rules\">{\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">position</span>:<span class=\"hljs-value\"> relative</span></span>;\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">overflow</span>:<span class=\"hljs-value\"> hidden</span></span>;\n}</span>\n\n<span class=\"hljs-class\">.single-line</span> <span class=\"hljs-class\">.kuma-select2-selection--multiple</span> <span class=\"hljs-class\">.kuma-select2-selection__rendered</span> <span class=\"hljs-rules\">{\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">position</span>:<span class=\"hljs-value\"> absolute</span></span>;\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">right</span>:<span class=\"hljs-value\"> <span class=\"hljs-number\">20px</span></span></span>;\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">white-space</span>:<span class=\"hljs-value\"> nowrap</span></span>;\n}</span>\n\n<span class=\"hljs-class\">.single-line</span> <span class=\"hljs-class\">.kuma-select2-selection--multiple</span> <span class=\"hljs-class\">.kuma-select2-selection__rendered</span> <span class=\"hljs-class\">.kuma-select2-selection__choice</span> <span class=\"hljs-rules\">{\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">float</span>:<span class=\"hljs-value\"> none</span></span>;\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">display</span>:<span class=\"hljs-value\"> inline-block</span></span>;\n}</span>\n<span class=\"hljs-class\">.single-line</span> <span class=\"hljs-class\">.kuma-select2-selection--multiple</span> <span class=\"hljs-class\">.kuma-select2-selection__rendered</span> <span class=\"hljs-class\">.kuma-select2-search--inline</span> <span class=\"hljs-rules\">{\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">float</span>:<span class=\"hljs-value\"> none</span></span>;\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">display</span>:<span class=\"hljs-value\"> inline-block</span></span>;\n <span class=\"hljs-rule\"><span class=\"hljs-attribute\">vertical-align</span>:<span class=\"hljs-value\"> top\n</span></span></span>}</code></pre></div>"},"status":"public","toc":""},{"title":"标签","id":"components-select2-demo-tags","tags":[],"filepath":"site/components/select2/demo/tags.md","directory":"components/select2/demo","filename":"tags","meta":{"title":"标签","description":"\n<p>这种模式下可以让输入的值成为一个选项。</p>\n","order":"4","filepath":"site/components/select2/demo/tags.md","filename":"tags","directory":"components/select2/demo","id":"components-select2-demo-tags","template":"demos","html":"<script>(function(){'use strict';\n\nvar _uxcore = require('uxcore');\n\nvar Option = _uxcore.Select.Option;\n\nvar children = [];\nfor (var i = 10; i < 36; i++) {\n children.push(React.createElement(\n Option,\n { key: i.toString(36) + i },\n i.toString(36) + i\n ));\n}\n\nfunction handleChange(value) {\n console.log('selected ' + value);\n}\n\nReactDOM.render(React.createElement(\n _uxcore.Select,\n {\n dropdownClassName: 'kuma-select2-selected-has-icon',\n style: { width: 400 },\n tags: true, defaultValue: ['name2', 'name3'], onChange: handleChange\n },\n children\n), document.getElementById('components-select2-demo-tags'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\n<span class=\"hljs-keyword\">const</span> children = [];\n<span class=\"hljs-keyword\">for</span> (<span class=\"hljs-keyword\">let</span> i = <span class=\"hljs-number\">10</span>; i < <span class=\"hljs-number\">36</span>; i++) {\n children.push(<span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">key</span>=<span class=\"hljs-value\">{i.toString(36)</span> + <span class=\"hljs-attribute\">i</span>}></span>{i.toString(36) + i}<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>)</span>;\n}\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-title\">handleChange</span>(<span class=\"hljs-params\">value</span>) </span>{\n <span class=\"hljs-built_in\">console</span>.log(<span class=\"hljs-string\">`selected <span class=\"hljs-subst\">${value}</span>`</span>);\n}\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span>\n <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>\n <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">400</span> }}\n <span class=\"hljs-attribute\">tags</span> <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">{['name2',</span> '<span class=\"hljs-attribute\">name3</span>']} <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{handleChange}</span>\n ></span>\n {children}\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n, document.getElementById('components-select2-demo-tags'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"智能提示","id":"components-select2-demo-combobox","tags":[],"filepath":"site/components/select2/demo/combobox.md","directory":"components/select2/demo","filename":"combobox","meta":{"title":"智能提示","description":"\n<p>输入框自动完成功能,下面是一个账号注册表单的例子。<br>同时这也是一个应用 combobox 模式的例子,除了提示的内容也可以将自己的输入作为选择,通常用于搜索。</p>\n","order":"5","filepath":"site/components/select2/demo/combobox.md","filename":"combobox","directory":"components/select2/demo","id":"components-select2-demo-combobox","template":"demos","html":"<script>(function(){'use strict';\n\nvar _uxcore = require('uxcore');\n\nvar Option = _uxcore.Select.Option;\n\nvar Test = React.createClass({\n displayName: 'Test',\n getInitialState: function getInitialState() {\n return {\n options: []\n };\n },\n handleChange: function handleChange(value) {\n var options = void 0;\n if (!value || value.indexOf('@') >= 0) {\n options = [];\n } else {\n options = ['gmail.com', '163.com', 'qq.com'].map(function (domain) {\n var email = value + '@' + domain;\n return React.createElement(\n Option,\n { key: email },\n email\n );\n });\n }\n this.setState({\n options: options,\n value: value\n });\n },\n render: function render() {\n return React.createElement(\n 'div',\n null,\n React.createElement(\n _uxcore.Select,\n {\n combobox: true,\n dropdownClassName: 'kuma-select2-selected-has-icon',\n style: { width: 200 },\n onChange: this.handleChange,\n searchPlaceholder: '\\u8BF7\\u8F93\\u5165\\u8D26\\u6237\\u540D'\n },\n this.state.options\n ),\n React.createElement(\n 'span',\n { style: { marginLeft: '8px' } },\n '\\u9009\\u4E2D\\u7684\\u503C\\uFF1A',\n this.state.value\n )\n );\n }\n});\n\nReactDOM.render(React.createElement(Test, null), document.getElementById('components-select2-demo-combobox'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\n<span class=\"hljs-keyword\">const</span> Test = React.createClass({\n getInitialState() {\n <span class=\"hljs-keyword\">return</span> {\n options: [],\n };\n },\n handleChange(value) {\n <span class=\"hljs-keyword\">let</span> options;\n <span class=\"hljs-keyword\">if</span> (!value || value.indexOf(<span class=\"hljs-string\">'@'</span>) >= <span class=\"hljs-number\">0</span>) {\n options = [];\n } <span class=\"hljs-keyword\">else</span> {\n options = [<span class=\"hljs-string\">'gmail.com'</span>, <span class=\"hljs-string\">'163.com'</span>, <span class=\"hljs-string\">'qq.com'</span>].map((domain) => {\n <span class=\"hljs-keyword\">const</span> email = <span class=\"hljs-string\">`<span class=\"hljs-subst\">${value}</span>@<span class=\"hljs-subst\">${domain}</span>`</span>;\n <span class=\"hljs-keyword\">return</span> <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">key</span>=<span class=\"hljs-value\">{email}</span>></span>{email}<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>;</span>\n });\n }\n <span class=\"hljs-keyword\">this</span>.setState({\n options,\n value,\n });\n },\n render() {\n <span class=\"hljs-keyword\">return</span> (\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">div</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span>\n <span class=\"hljs-attribute\">combobox</span>\n <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>\n <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">200</span> }}\n <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{this.handleChange}</span>\n <span class=\"hljs-attribute\">searchPlaceholder</span>=<span class=\"hljs-value\">\"请输入账户名\"</span>\n ></span>\n {this.state.options}\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">span</span> <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">marginLeft:</span> '<span class=\"hljs-attribute\">8px</span>' }}></span>选中的值:{this.state.value}<span class=\"hljs-tag\"></<span class=\"hljs-title\">span</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">div</span>></span>\n )</span>;\n },\n});\n\nReactDOM.render(<span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Test</span> /></span>, document.getElementById('components-select2-demo-combobox'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"分组","id":"components-select2-demo-group","tags":[],"filepath":"site/components/select2/demo/group.md","directory":"components/select2/demo","filename":"group","meta":{"title":"分组","description":"\n<p>option分组</p>\n","order":"6","filepath":"site/components/select2/demo/group.md","filename":"group","directory":"components/select2/demo","id":"components-select2-demo-group","template":"demos","html":"<script>(function(){\"use strict\";\n\nvar _uxcore = require(\"uxcore\");\n\nvar Option = _uxcore.Select.Option,\n OptGroup = _uxcore.Select.OptGroup;\n\n\nfunction handleChange(value) {\n console.log(\"selected \" + value);\n}\n\nReactDOM.render(React.createElement(\n _uxcore.Select,\n { defaultValue: \"lucy\",\n style: { width: 200 },\n dropdownClassName: \"kuma-select2-selected-has-icon\",\n showSearch: false,\n onChange: handleChange\n },\n React.createElement(\n OptGroup,\n { label: \"Manager\" },\n React.createElement(\n Option,\n { value: \"jack\" },\n \"jack\"\n ),\n React.createElement(\n Option,\n { value: \"lucy\" },\n \"lucy\"\n )\n ),\n React.createElement(\n OptGroup,\n { label: \"Engineer\" },\n React.createElement(\n Option,\n { value: \"yiminghe\" },\n \"yiminghe\"\n )\n )\n), document.getElementById('components-select2-demo-group'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> { Option, OptGroup } = Select;\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">function</span> <span class=\"hljs-title\">handleChange</span>(<span class=\"hljs-params\">value</span>) </span>{\n <span class=\"hljs-built_in\">console</span>.log(<span class=\"hljs-string\">`selected <span class=\"hljs-subst\">${value}</span>`</span>);\n}\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">\"lucy\"</span>\n <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">200</span> }}\n <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>\n <span class=\"hljs-attribute\">showSearch</span>=<span class=\"hljs-value\">{false}</span>\n <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{handleChange}</span>\n ></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">OptGroup</span> <span class=\"hljs-attribute\">label</span>=<span class=\"hljs-value\">\"Manager\"</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"jack\"</span>></span>jack<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"lucy\"</span>></span>lucy<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">OptGroup</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">OptGroup</span> <span class=\"hljs-attribute\">label</span>=<span class=\"hljs-value\">\"Engineer\"</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"yiminghe\"</span>></span>yiminghe<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">OptGroup</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>, document.getElementById('components-select2-demo-group'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"联动","id":"components-select2-demo-coordinate","tags":[],"filepath":"site/components/select2/demo/coordinate.md","directory":"components/select2/demo","filename":"coordinate","meta":{"title":"联动","description":"\n<p>省市联动是典型的例子。</p>\n","order":"7","filepath":"site/components/select2/demo/coordinate.md","filename":"coordinate","directory":"components/select2/demo","id":"components-select2-demo-coordinate","template":"demos","html":"<script>(function(){'use strict';\n\nvar _uxcore = require('uxcore');\n\nvar Option = _uxcore.Select.Option;\n\n\nvar provinceData = ['浙江', '江苏'];\nvar cityData = {\n 浙江: ['杭州', '宁波', '温州'],\n 江苏: ['南京', '苏州', '镇江']\n};\n\nvar App = React.createClass({\n displayName: 'App',\n getInitialState: function getInitialState() {\n return {\n cities: cityData[provinceData[0]],\n secondCity: cityData[provinceData[0]][0]\n };\n },\n handleProvinceChange: function handleProvinceChange(value) {\n this.setState({\n cities: cityData[value],\n secondCity: cityData[value][0]\n });\n },\n onSecondCityChange: function onSecondCityChange(value) {\n this.setState({\n secondCity: value\n });\n },\n render: function render() {\n var provinceOptions = provinceData.map(function (province) {\n return React.createElement(\n Option,\n { key: province },\n province\n );\n });\n var cityOptions = this.state.cities.map(function (city) {\n return React.createElement(\n Option,\n { key: city },\n city\n );\n });\n return React.createElement(\n 'div',\n null,\n React.createElement(\n _uxcore.Select,\n { defaultValue: provinceData[0], style: { width: 150 }, onChange: this.handleProvinceChange, dropdownClassName: 'kuma-select2-selected-has-icon' },\n provinceOptions\n ),\n '\\xA0',\n React.createElement(\n _uxcore.Select,\n { value: this.state.secondCity, style: { width: 150 }, onChange: this.onSecondCityChange, dropdownClassName: 'kuma-select2-selected-has-icon' },\n cityOptions\n )\n );\n }\n});\n\nReactDOM.render(React.createElement(App, null), document.getElementById('components-select2-demo-coordinate'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> { Option } = Select;\n\n<span class=\"hljs-keyword\">const</span> provinceData = [<span class=\"hljs-string\">'浙江'</span>, <span class=\"hljs-string\">'江苏'</span>];\n<span class=\"hljs-keyword\">const</span> cityData = {\n 浙江: [<span class=\"hljs-string\">'杭州'</span>, <span class=\"hljs-string\">'宁波'</span>, <span class=\"hljs-string\">'温州'</span>],\n 江苏: [<span class=\"hljs-string\">'南京'</span>, <span class=\"hljs-string\">'苏州'</span>, <span class=\"hljs-string\">'镇江'</span>],\n};\n\n<span class=\"hljs-keyword\">const</span> App = React.createClass({\n getInitialState() {\n <span class=\"hljs-keyword\">return</span> {\n cities: cityData[provinceData[<span class=\"hljs-number\">0</span>]],\n secondCity: cityData[provinceData[<span class=\"hljs-number\">0</span>]][<span class=\"hljs-number\">0</span>],\n };\n },\n handleProvinceChange(value) {\n <span class=\"hljs-keyword\">this</span>.setState({\n cities: cityData[value],\n secondCity: cityData[value][<span class=\"hljs-number\">0</span>],\n });\n },\n onSecondCityChange(value) {\n <span class=\"hljs-keyword\">this</span>.setState({\n secondCity: value,\n });\n },\n render() {\n <span class=\"hljs-keyword\">const</span> provinceOptions = provinceData.map(province => <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">key</span>=<span class=\"hljs-value\">{province}</span>></span>{province}<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>)</span>;\n <span class=\"hljs-keyword\">const</span> cityOptions = <span class=\"hljs-keyword\">this</span>.state.cities.map(city => <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">key</span>=<span class=\"hljs-value\">{city}</span>></span>{city}<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>)</span>;\n <span class=\"hljs-keyword\">return</span> (<span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">div</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">{provinceData[0]}</span> <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">150</span> }} <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{this.handleProvinceChange}</span> <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>></span>\n {provinceOptions}\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n &nbsp;\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">{this.state.secondCity}</span> <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">150</span> }} <span class=\"hljs-attribute\">onChange</span>=<span class=\"hljs-value\">{this.onSecondCityChange}</span> <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span>></span>\n {cityOptions}\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">div</span>></span>)</span>;\n },\n});\n\nReactDOM.render(<span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">App</span> /></span>, document.getElementById('components-select2-demo-coordinate'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"禁用","id":"components-select2-demo-disabled","tags":[],"filepath":"site/components/select2/demo/disabled.md","directory":"components/select2/demo","filename":"disabled","meta":{"title":"禁用","description":"\n<p>基本使用。</p>\n","order":"7","filepath":"site/components/select2/demo/disabled.md","filename":"disabled","directory":"components/select2/demo","id":"components-select2-demo-disabled","template":"demos","html":"<script>(function(){\"use strict\";\n\nvar _uxcore = require(\"uxcore\");\n\nvar Option = _uxcore.Select.Option;\n\nReactDOM.render(React.createElement(\n _uxcore.Select,\n { defaultValue: \"lucy\", style: { width: 200 }, dropdownClassName: \"kuma-select2-selected-has-icon\", disabled: true },\n React.createElement(\n Option,\n { value: \"jack\" },\n \"Jack\"\n ),\n React.createElement(\n Option,\n { value: \"lucy\" },\n \"Lucy\"\n ),\n React.createElement(\n Option,\n { value: \"disabled\", disabled: true },\n \"Disabled\"\n ),\n React.createElement(\n Option,\n { value: \"yiminghe\" },\n \"yiminghe\"\n )\n), document.getElementById('components-select2-demo-disabled'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span> <span class=\"hljs-attribute\">defaultValue</span>=<span class=\"hljs-value\">\"lucy\"</span> <span class=\"hljs-attribute\">style</span>=<span class=\"hljs-value\">{{</span> <span class=\"hljs-attribute\">width:</span> <span class=\"hljs-attribute\">200</span> }} <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-selected-has-icon\"</span> <span class=\"hljs-attribute\">disabled</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"jack\"</span>></span>Jack<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"lucy\"</span>></span>Lucy<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"disabled\"</span> <span class=\"hljs-attribute\">disabled</span>></span>Disabled<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"yiminghe\"</span>></span>yiminghe<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n, document.getElementById('components-select2-demo-disabled'));</span></code></pre></div>"},"status":"public","toc":""},{"title":"不带边框选择","id":"components-select2-demo-inline","tags":[],"filepath":"site/components/select2/demo/inline.md","directory":"components/select2/demo","filename":"inline","meta":{"title":"不带边框选择","description":"\n<p>不带边框选择。</p>\n","order":"8","filepath":"site/components/select2/demo/inline.md","filename":"inline","directory":"components/select2/demo","id":"components-select2-demo-inline","template":"demos","html":"<script>(function(){\"use strict\";\n\nvar _uxcore = require(\"uxcore\");\n\nvar Option = _uxcore.Select.Option;\n\nReactDOM.render(React.createElement(\n _uxcore.Select,\n {\n className: \"kuma-select2-inline\",\n placeholder: \"\\u8BF7\\u9009\\u62E9\",\n showSearch: false,\n dropdownClassName: \"kuma-select2-inline-dropdown\"\n },\n React.createElement(\n Option,\n { value: \"jack\" },\n \"Jack\"\n ),\n React.createElement(\n Option,\n { value: \"lucy\" },\n \"Lucy\"\n ),\n React.createElement(\n Option,\n { value: \"disabled\", disabled: true },\n \"Disabled\"\n ),\n React.createElement(\n Option,\n { value: \"yiminghe\" },\n \"yiminghe\"\n )\n), document.getElementById('components-select2-demo-inline'));})()</script><div class=\"highlight\"><pre><code class=\"javascript\"><span class=\"hljs-keyword\">import</span> { Select } <span class=\"hljs-keyword\">from</span> <span class=\"hljs-string\">'uxcore'</span>;\n<span class=\"hljs-keyword\">const</span> Option = Select.Option;\n\nReactDOM.render(\n <span class=\"xml\"><span class=\"hljs-tag\"><<span class=\"hljs-title\">Select</span>\n <span class=\"hljs-attribute\">className</span>=<span class=\"hljs-value\">\"kuma-select2-inline\"</span>\n <span class=\"hljs-attribute\">placeholder</span>=<span class=\"hljs-value\">\"请选择\"</span>\n <span class=\"hljs-attribute\">showSearch</span>=<span class=\"hljs-value\">{false}</span>\n <span class=\"hljs-attribute\">dropdownClassName</span>=<span class=\"hljs-value\">\"kuma-select2-inline-dropdown\"</span>\n ></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"jack\"</span>></span>Jack<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"lucy\"</span>></span>Lucy<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"disabled\"</span> <span class=\"hljs-attribute\">disabled</span>></span>Disabled<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"><<span class=\"hljs-title\">Option</span> <span class=\"hljs-attribute\">value</span>=<span class=\"hljs-value\">\"yiminghe\"</span>></span>yiminghe<span class=\"hljs-tag\"></<span class=\"hljs-title\">Option</span>></span>\n <span class=\"hljs-tag\"></<span class=\"hljs-title\">Select</span>></span>\n, document.getElementById('components-select2-demo-inline'));</span></code></pre></div>"},"status":"public","toc":""}]
import { Select } from 'uxcore';
const Option = Select.Option;
ReactDOM.render(
<Select defaultValue="lucy" style={{ width: 200 }} dropdownClassName="kuma-select2-selected-has-icon">
<Option value="jack">Jack</Option>
<Option value="lucy">Lucy</Option>
<Option value="disabled" disabled>Disabled</Option>
<Option value="yiminghe">yiminghe</Option>
</Select>
, document.getElementById('components-select2-demo-basic'));
import { Select } from 'uxcore';
const Option = Select.Option;
function handleChange(value) {
console.log(`selected ${value}`);
}
const select = (
<Select defaultValue="lucy" showSearch={false} style={{ width: 200, display: 'block', marginBottom: '4px' }} onChange={handleChange} dropdownClassName="kuma-select2-selected-has-icon">
<Option value="jack">jack</Option>
<Option value="lucy">lucy</Option>
<Option value="disabled" disabled>disabled</Option>
<Option value="yiminghe">yiminghe</Option>
</Select>
);
ReactDOM.render(
<div>
{['large', 'middle', 'small'].map(size => React.cloneElement(select, {
size,
}))}
</div>
, document.getElementById('components-select2-demo-size'));
import { Select } from 'uxcore';
const Option = Select.Option;
function handleChange(value) {
console.log(`selected ${value}`);
}
ReactDOM.render(
<Select defaultValue="lucy" showSearch={false} style={{ width: 200 }} onChange={handleChange} dropdownClassName="kuma-select2-selected-has-icon">
<Option value="jack">jack</Option>
<Option value="lucy">lucy</Option>
<Option value="disabled" disabled>disabled</Option>
<Option value="yiminghe">yiminghe</Option>
</Select>
, document.getElementById('components-select2-demo-search'));
import { Select } from 'uxcore';
const Option = Select.Option;
const children = [];
for (let i = 10; i < 36; i++) {
children.push(<Option key={i.toString(36) + i}>{i.toString(36) + i}</Option>);
}
function handleChange(value) {
console.log(`selected ${value}`);
}
ReactDOM.render(
<Select multiple
style={{ width: 400 }}
dropdownClassName="kuma-select2-selected-has-icon"
defaultValue={['a10', 'c12']} onChange={handleChange}
>
{children}
</Select>
, document.getElementById('components-select2-demo-multiple'));
import { Select } from 'uxcore';
const Option = Select.Option;
import classnames from 'classnames';;
const children = [];
for (let i = 10; i < 36; i++) {
children.push(<Option key={i.toString(36) + i}>{i.toString(36) + i}</Option>);
}
class Demo extends React.Component {
constructor(props) {
super(props);
this.state = {
value: ['a10', 'c12'],
};
}
handleChange(value) {
this.setState({
value,
});
}
render() {
return (<Select multiple
dropdownClassName="kuma-select2-selected-has-icon"
className={classnames({
'single-line': this.state.value.length > 6,
})}
style={{ width: 400 }}
value={this.state.value} onChange={this.handleChange.bind(this)}
>
{children}
</Select>);
}
}
ReactDOM.render(
<Demo />
, document.getElementById('components-select2-demo-multiple-singleline'));
.single-line .kuma-select2-selection--multiple {
position: relative;
overflow: hidden;
}
.single-line .kuma-select2-selection--multiple .kuma-select2-selection__rendered {
position: absolute;
right: 20px;
white-space: nowrap;
}
.single-line .kuma-select2-selection--multiple .kuma-select2-selection__rendered .kuma-select2-selection__choice {
float: none;
display: inline-block;
}
.single-line .kuma-select2-selection--multiple .kuma-select2-selection__rendered .kuma-select2-search--inline {
float: none;
display: inline-block;
vertical-align: top
}
import { Select } from 'uxcore';
const Option = Select.Option;
const Test = React.createClass({
getInitialState() {
return {
options: [],
};
},
handleChange(value) {
let options;
if (!value || value.indexOf('@') >= 0) {
options = [];
} else {
options = ['gmail.com', '163.com', 'qq.com'].map((domain) => {
const email = `${value}@${domain}`;
return <Option key={email}>{email}</Option>;
});
}
this.setState({
options,
value,
});
},
render() {
return (
<div>
<Select
combobox
dropdownClassName="kuma-select2-selected-has-icon"
style={{ width: 200 }}
onChange={this.handleChange}
searchPlaceholder="请输入账户名"
>
{this.state.options}
</Select>
<span style={{ marginLeft: '8px' }}>选中的值:{this.state.value}</span>
</div>
);
},
});
ReactDOM.render(<Test />, document.getElementById('components-select2-demo-combobox'));
import { Select } from 'uxcore';
const { Option, OptGroup } = Select;
function handleChange(value) {
console.log(`selected ${value}`);
}
ReactDOM.render(
<Select defaultValue="lucy"
style={{ width: 200 }}
dropdownClassName="kuma-select2-selected-has-icon"
showSearch={false}
onChange={handleChange}
>
<OptGroup label="Manager">
<Option value="jack">jack</Option>
<Option value="lucy">lucy</Option>
</OptGroup>
<OptGroup label="Engineer">
<Option value="yiminghe">yiminghe</Option>
</OptGroup>
</Select>, document.getElementById('components-select2-demo-group'));
import { Select } from 'uxcore';
const { Option } = Select;
const provinceData = ['浙江', '江苏'];
const cityData = {
浙江: ['杭州', '宁波', '温州'],
江苏: ['南京', '苏州', '镇江'],
};
const App = React.createClass({
getInitialState() {
return {
cities: cityData[provinceData[0]],
secondCity: cityData[provinceData[0]][0],
};
},
handleProvinceChange(value) {
this.setState({
cities: cityData[value],
secondCity: cityData[value][0],
});
},
onSecondCityChange(value) {
this.setState({
secondCity: value,
});
},
render() {
const provinceOptions = provinceData.map(province => <Option key={province}>{province}</Option>);
const cityOptions = this.state.cities.map(city => <Option key={city}>{city}</Option>);
return (<div>
<Select defaultValue={provinceData[0]} style={{ width: 150 }} onChange={this.handleProvinceChange} dropdownClassName="kuma-select2-selected-has-icon">
{provinceOptions}
</Select>
<Select value={this.state.secondCity} style={{ width: 150 }} onChange={this.onSecondCityChange} dropdownClassName="kuma-select2-selected-has-icon">
{cityOptions}
</Select>
</div>);
},
});
ReactDOM.render(<App />, document.getElementById('components-select2-demo-coordinate'));
import { Select } from 'uxcore';
const Option = Select.Option;
ReactDOM.render(
<Select defaultValue="lucy" style={{ width: 200 }} dropdownClassName="kuma-select2-selected-has-icon" disabled>
<Option value="jack">Jack</Option>
<Option value="lucy">Lucy</Option>
<Option value="disabled" disabled>Disabled</Option>
<Option value="yiminghe">yiminghe</Option>
</Select>
, document.getElementById('components-select2-demo-disabled'));
import { Select } from 'uxcore';
const Option = Select.Option;
ReactDOM.render(
<Select
className="kuma-select2-inline"
placeholder="请选择"
showSearch={false}
dropdownClassName="kuma-select2-inline-dropdown"
>
<Option value="jack">Jack</Option>
<Option value="lucy">Lucy</Option>
<Option value="disabled" disabled>Disabled</Option>
<Option value="yiminghe">yiminghe</Option>
</Select>
, document.getElementById('components-select2-demo-inline'));
类似 Select2 的选择器。
何时使用
弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时。
<Select>
<Option value="lucy">lucy</Option>
</Select>
Props
Select props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | 指定当前选中的条目 | string/Array | 无 |
defaultValue | 指定默认选中的条目 | string/Array | 无 |
multiple | 支持多选 | bool | false |
filterOption | 是否根据输入结果过滤选项,默认是使用 optionFilterProp 对应的 Option 属性来过滤 | bool/function(inputValue, Option) | true |
showSearch | 是否在单选模式下显示搜索 | bool | true |
tags | 可以把随意输入的条目作为tag,输入项不需要与下拉选项匹配 | bool | false |
onSelect | 被选中时调用,参数为选中的option value值 | function(value, option:Option) | 无 |
onDeselect | 取消选中时调用,参数为选中的option value值,仅在multiple或tags模式下生效 | function(value) | 无 |
onChange | 选中option,或input的value变化(combobox模式下)时,调用此函数 | function | 无 |
onSearch | 搜索框值发生变化时调用 | function(key) | noop |
allowClear | 显示清除按钮 | false | |
placeholder | 选择框默认文字 | string | 无 |
searchPlaceholder | 搜索框默认文字 | string | 无 |
optionFilterProp | 输入项过滤对应的 option 属性 | string | value |
combobox | 输入框自动提示模式 | bool | false |
optionLabelProp | 选择 Option 的哪个 prop 作为选择框中的显示。 | string | 'children' |
getPopupContainer | 弹出的菜单渲染在哪个容器中 | function(trigger:Node):Node | function(){return document.body;} |
dropdownMatchSelectWidth | dropdown 部分是否和 select 部分同宽 | boolean | true |
dropdownClassName | dropdown 部分的定制类名 | string | - |
notFoundContent | 未找到选项时的提示文案 | string | not found |
size | 尺寸,枚举值 large , small , middle |
string | large |
rcRef | 对react-select的引用,方便直接调用rcSelect的API | function | (r) => {} |
Option props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
disabled | 是否禁用 | Boolean | false |
key | 如果react需要你设置此项,此项值与value的值相同,然后可以省略value设置 | String | |
value | 默认根据此属性值进行筛选 | String | - |
title | 如果你不满意自动生成的 title,你可以用这个 prop 来修改 | String | - |
OptGroup props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
label | 组名 | String/React.Element | 无 |
key | String | - |