import React, { Component, PropTypes } from 'react' import Select from 'react-select' import CSSModules from 'react-css-modules' import 'react-select/dist/react-select.min.css' import styles from './index.styl' @CSSModules(styles, { allowMultiple: true, errorWhenNotFound: false }) export default class extends Component { static propTypes = { inputWidth: PropTypes.string, labelWidth: PropTypes.string, value: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]), options: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.oneOfType([ PropTypes.string, PropTypes.element ]), value: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]) })), onChange: PropTypes.func, disabled: PropTypes.bool, required: PropTypes.bool } static defaultProps = { inputWidth: '200px' } handleChange (v) { if (!this.props.multi && Array.isArray(v)) { // 防止传回错误的value return false } let e = {} e.target = {} if (v) { e.target.value = v.value || v.map(o => o.value) } else { e.target.value = '' } this.props.onChange(e) } render () { return (