请教一个elementUI与Vue底层逻辑的问题

最近有一个需求是当el-InputNumber输入的值为0,且有设置precision(假设为2)数值精度的情况下,最后输出的值应为0,不为0.00。查看了elementUI的源码,我做了如下修改

toPrecision(num, precision) {

if (precision === undefined) precision = this.numPrecision;

//增加的判断条件

if(num === 0){

return 0

}else {

return parseFloat(Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision));

}

},

我在原本的判断函数中做了是否为0的判断,若输入的值为0,则return0,但是当实际操作过后,发现并没有生效。打了断点查看之后发现上面的函数运行时是没问题的,但是当代码走到vue.runtime.esm.js中时,检查到代码只要走到这个函数中,请教一个elementUI与Vue底层逻辑的问题,数值就会被改回去(0变为0.00),请问这个是什么原因呢?


回答:

并没有复现你说的问题,是你修改的地方不对
在线示例
我修改的地方

 if (this.precision !== undefined) {

currentValue = currentValue.toFixed(this.precision);

}

修改为

if (this.precision !== undefined) {

if (currentValue !== 0)

currentValue = currentValue.toFixed(this.precision);

}

以上是 请教一个elementUI与Vue底层逻辑的问题 的全部内容, 来源链接: utcz.com/p/935553.html

回到顶部