uni-app v-model没有显示真实数据

uni-app v-model没有显示真实数据

通过watch 或者 监听input事件判断数据是否大于最大值小于最小值,小于最小值就设置为最小值,大于最大值就设置为最大值,结果数据设置的值是对的,显示的还是键入的值

image

此时log出来的数据是0.005 结果显示的是大于0.005的

poundageInput() {  
    let poundage = parseFloat(this.poundage)  
    if (poundage < 0.001) {  
        this.poundage = 0.001  
    }  
    if (poundage > 0.005) {  
        this.poundage = 0.005  
    }  
}

更多关于uni-app v-model没有显示真实数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html

17 回复

先这样解决 setTimeout(() => {
this.value = 100
}, 0)

更多关于uni-app v-model没有显示真实数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这样确实有效 感谢!

没人解决这个问题吗??

求解决

11111111

@DCloud_客服_GSQ @DCloud_客服_Trust

提供一个能运行的demo

上传了,麻烦看一下,谢谢

上传了demo

@DCloud_客服_GSQ 麻烦帮忙看一下 很急

这是一个典型的v-model数据绑定和视图更新不同步的问题。在uni-app中,当通过代码修改v-model绑定的数据时,有时会出现视图未及时更新的情况。

解决方案:

  1. 使用this.$nextTick确保DOM更新:
poundageInput() {
    let poundage = parseFloat(this.poundage)
    if (poundage < 0.001) {
        this.poundage = 0.001
    }
    if (poundage > 0.005) {
        this.poundage = 0.005
    }
    this.$nextTick(() => {
        this.poundage = parseFloat(this.poundage.toFixed(3))
    })
}
  1. 或者使用强制更新:
poundageInput() {
    let poundage = parseFloat(this.poundage)
    if (poundage < 0.001) {
        this.poundage = 0.001
    }
    if (poundage > 0.005) {
        this.poundage = 0.005
    }
    this.$forceUpdate()
}
回到顶部