• InputNumber数字输入框
    • 何时使用
    • 代码演示
    • API
    • 方法

    InputNumber数字输入框

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

    何时使用

    当需要获取标准数值时。

    代码演示

    InputNumber 数字输入框 - 图1

    基本

    数字输入框。

    1. import { InputNumber } from 'antd';
    2. function onChange(value) {
    3. console.log('changed', value);
    4. }
    5. ReactDOM.render(<InputNumber min={1} max={10} defaultValue={3} onChange={onChange} />, mountNode);

    InputNumber 数字输入框 - 图2

    不可用

    点击按钮切换可用状态。

    1. import { InputNumber, Button } from 'antd';
    2. class App extends React.Component {
    3. state = {
    4. disabled: true,
    5. };
    6. toggle = () => {
    7. this.setState({
    8. disabled: !this.state.disabled,
    9. });
    10. };
    11. render() {
    12. return (
    13. <div>
    14. <InputNumber min={1} max={10} disabled={this.state.disabled} defaultValue={3} />
    15. <div style={{ marginTop: 20 }}>
    16. <Button onClick={this.toggle} type="primary">
    17. Toggle disabled
    18. </Button>
    19. </div>
    20. </div>
    21. );
    22. }
    23. }
    24. ReactDOM.render(<App />, mountNode);

    InputNumber 数字输入框 - 图3

    格式化展示

    通过 formatter 格式化数字,以展示具有具体含义的数据,往往需要配合 parser 一起使用。

    1. import { InputNumber } from 'antd';
    2. function onChange(value) {
    3. console.log('changed', value);
    4. }
    5. ReactDOM.render(
    6. <div>
    7. <InputNumber
    8. defaultValue={1000}
    9. formatter={value => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}
    10. parser={value => value.replace(/\$\s?|(,*)/g, '')}
    11. onChange={onChange}
    12. />
    13. <InputNumber
    14. defaultValue={100}
    15. min={0}
    16. max={100}
    17. formatter={value => `${value}%`}
    18. parser={value => value.replace('%', '')}
    19. onChange={onChange}
    20. />
    21. </div>,
    22. mountNode,
    23. );

    InputNumber 数字输入框 - 图4

    三种大小

    三种大小的数字输入框,当 size 分别为 largesmall 时,输入框高度为 40px24px ,默认高度为 32px

    1. import { InputNumber } from 'antd';
    2. function onChange(value) {
    3. console.log('changed', value);
    4. }
    5. ReactDOM.render(
    6. <div>
    7. <InputNumber size="large" min={1} max={100000} defaultValue={3} onChange={onChange} />
    8. <InputNumber min={1} max={100000} defaultValue={3} onChange={onChange} />
    9. <InputNumber size="small" min={1} max={100000} defaultValue={3} onChange={onChange} />
    10. </div>,
    11. mountNode,
    12. );
    1. .ant-input-number {
    2. margin-right: 10px;
    3. }

    InputNumber 数字输入框 - 图5

    小数

    和原生的数字输入框一样,value 的精度由 step 的小数位数决定。

    1. import { InputNumber } from 'antd';
    2. function onChange(value) {
    3. console.log('changed', value);
    4. }
    5. ReactDOM.render(<InputNumber min={0} max={10} step={0.1} onChange={onChange} />, 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-
    decimalSeparator小数点string-
    size输入框大小string
    step每次改变步数,可以为小数number|string1
    value当前值number
    onChange变化回调Function(value: number | string)

    方法

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