Advertisement

记录因为antd版本InputNumber遇到的问题

阅读量:
1. 项目需求

设置金额的有效数字为两位,并会自动填充至两位。当在小数点后输入第三位时(例如12.345),系统会截断多余数字(仅保留12.34)。为了防止误操作,在焦点离开时也不会允许用户继续编辑超出规定的小数值。

2. 产生现象

formatter实时格式化会出现个问题,输入123,2还没输入,页面格式化为1.00

注意:precision: 配置 formatter 时会以 formatter 为准

复制代码
 {

    
       dataIndex: "amount",
    
       valueType: "digit",
    
       title: "金额",
    
       search: false,
    
       fieldProps: {
    
     precision: 2,
    
     formatter: (value: any, info: any) => formatNumber(value, info),
    
     parser: (value: any) => value!.replace(/\$\s?|(,*)/g, ""),
    
     max: 999999999999999.99,
    
     min: -99999999999999.99,
    
     maxLength: 15,
    
       },
    
       formItemProps: (form, config: any) => {
    
     return {
    
       rules: [{ required: true, message: "请输入金额" }]
    
     };
    
       }
    
 },
    
    
    
    
    AI写代码
3. 产生原因

为了实现表格的虚拟化滚动效果, 我们将从当前使用的Ant Design 5.x版本, 进行一次全面更新, 升级至Ant Design 12.x版本, 并修复一些已知问题。经过测试, 发现这一操作不会影响到其他组件的功能, 同时也能显著提升用户体验。

官方认为这是一个bug被修复了;而我们的项目成功地利用了这一bug来满足需求目标。

虚拟滚动还是要的,这个问题也得修复

4. 解决方法

自5.9.0版本开始虚拟滚动功能已上线。自5.11.0版本起,“formatter实时格式化”功能被修复。因此将版本降级至5.10.3,并完美地解决了问题

最后:项目升级真的要慎重三思啊

全部评论 (0)

还没有任何评论哟~