需求:当有设置最大值时,计步器则设置max为此数值,最小值1,加大最大值时即不能在往上增加,最大值设置为0则为不限;那么u-number-box的max就要根据设置的数值去判断
uview的u-number-box文档:https://www.uviewui.com/components/numberBox.html
文档上写的max的默认值为Number.MAX_SAFE_INTEGER,在h5和app上设置这个没问题。
<!-- app、h5 -->
<u-number-box :max="num == 0 ? Number.MAX_SAFE_INTEGER : num"/>
在微信小程序上就不行,但是又没报错,点击加号不会+1。后面百度了下,
Number.MAX_SAFE_INTEGER 常量表示在 JavaScript 中最大的安全整数(maxinum safe integer)(2^53 - 1)
Number.MAX_SAFE_INTEGER // 9007199254740991
Math.pow(2, 53) - 1 // 9007199254740991
既然Number.MAX_SAFE_INTEGER和Math.pow(2, 53) - 1都代表同样的数值,是不是可以拿来使用呢
<!-- app、h5、微信小程序 -->
<u-number-box :max="num == 0 ? (Math.pow(2, 53) - 1) : num"/>
三个端都验证了下,没问题。