InputNumber组件强制限制小数,可以使用 formatter
属性配合正则来实现,但在实践中发现一个问题,比如限制的两位小数,当我输第三位小数的时候,组件会保存这个值,导致传给后台的值多出一位小数。
在2.9.0之后,InputNumber 新增 parser 属性,搭配 formatter 一起使用,可以较好的限制小数的位数。
将formatter和parser属性都绑定同一个方法,在这个方法里实现:
...... <InputNumber min={0} max={100} step={0.01} formatter={limitDecimals} parser={limitDecimals} />
绑定方法:
const limitDecimals = (value: string | number): string => { const reg = /^(\-)*(\d+)\.(\d\d).*$/; console.log(value); if(typeof value === 'string') { return !isNaN(Number(value)) ? value.replace(reg,'$1$2.$3') : '' } else if (typeof value === 'number') { return !isNaN(value) ? String(value).replace(reg,'$1$2.$3') : '' } else { return '' } };
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。