1. 项目需求
金额限制精度2位,自动补齐,小数点后输入第三位格式化只显示两位,而不是可以输入多位失去焦点后格式化
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: "请输入金额" }]
};
}
},
3. 产生原因
之前要做表格虚拟滚动antd从5.6.4升级为5.12.2,上述问题在5.6.4的版本不存在,那只能说明是升级后带来的,查阅文档后发现
好嘛,原来官方认为这是一个bug给修复了,而我们项目正好巧妙的使用了这个bug实现需求[旺柴]
虚拟滚动还是要的,这个问题也得修复
4. 解决方法
虚拟滚动是从5.9.0版本更新的,5.11.0修复了formatter实时格式化
, 所以把版本降为5.10.3完美解决
最后:项目升级真的要慎重三思啊