• InputNumber 数字输入框

    通过鼠标或键盘,输入范围内的数值。

    何时使用

    当需要获取标准数值时。

    代码演示

    数字输入框。
    expand code expand code
    import { InputNumber } from 'choerodon-ui';
    
    function onChange(value) {
      console.log('changed', value);
    }
    
    ReactDOM.render(
      <InputNumber label="数字" min={1} max={10} defaultValue={3} onChange={onChange} />,
      mountNode);
    
    点击按钮切换可用状态。
    expand code expand code
    import { InputNumber, Button } from 'choerodon-ui';
    
    class App extends React.Component {
      state = {
        disabled: true,
      };
    
      toggle = () => {
        this.setState({
          disabled: !this.state.disabled,
        });
      }
    
      render() {
        return (
          <div>
            <InputNumber label="禁用" min={1} max={10} disabled={this.state.disabled} defaultValue={3} />
            <div style={{ marginTop: 20 }}>
              <Button onClick={this.toggle} type="primary">Toggle disabled</Button>
            </div>
          </div>
        );
      }
    }
    
    ReactDOM.render(<App />, mountNode);
    
    和原生的数字输入框一样,value 的精度由 step 的小数位数决定。
    expand code expand code
    import { InputNumber } from 'choerodon-ui';
    
    function onChange(value) {
      console.log('changed', value);
    }
    
    ReactDOM.render(
      <InputNumber label="小数" min={0} max={10} step={0.1} onChange={onChange} />,
      mountNode);
    
    通过 formatter 格式化数字,以展示具有具体含义的数据,往往需要配合 parser 一起使用。
    expand code expand code
    import { InputNumber } from 'choerodon-ui';
    
    function onChange(value) {
      console.log('changed', value);
    }
    
    ReactDOM.render(
      <div>
        <InputNumber
          defaultValue={1000}
          label="金额"
          formatter={value => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
          parser={value => value.replace(/\$\s?|(,*)/g, '')}
          onChange={onChange}
        />
        <InputNumber
          defaultValue={100}
          label="百分比"
          min={0}
          max={100}
          formatter={value => `${value}%`}
          parser={value => value.replace('%', '')}
          onChange={onChange}
        />
      </div>,
      mountNode);
    

    API

    属性如下

    成员说明类型默认值
    autoFocus自动获取焦点booleanfalse
    defaultValue初始值number
    disabled禁用booleanfalse
    formatter指定输入框展示值的格式function(value: number | string): string-
    max最大值numberInfinity
    min最小值number-Infinity
    parser指定从 formatter 里转换回数字的方式,和 formatter 搭配使用function( string): number-
    precision数值精度number-
    step每次改变步数,可以为小数number|string1
    value当前值number
    onChange变化回调Function(value: number | string)

    方法

    名称描述
    blur()移除焦点
    focus()获取焦点