为了账号安全,请及时绑定邮箱和手机立即绑定

vue数据更新视图不实时更新的问题,这是为什么啊?

vue数据更新视图不实时更新的问题,这是为什么啊?

守候你守候我 2019-02-06 21:54:53
环境vue + elemntUI相关代码https://codepen.io/eeeecw/pen...点击预览具体情景在输入框的 change 事件里,我修改了输入框的双向帮定值,但不是每次都显示在输入框里。比如上面代码,输入框不支持小数,每次输入后,我都会在 change 事件里把数字转成整数,但是显示的值还是原来的值但是如果在 change 事件里写一个 setTimeout 去把数字转成整数,就回成功把最新值渲染出来。。。这是为什么?求原理?或者有什么更好的解决办法?
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

应为num1初始值是1,你输入1.3655后,通过Math.floor(this.value.num1)计算之后还是num1还是1,el-input-number内部的watch没有监听到变化,el-input-number相关代码如下:

  watch: {
    value: {
      immediate: true,
      handler: function handler(value) {        var newVal = value === undefined ? value : Number(value);        if (newVal !== undefined) {          if (isNaN(newVal)) {            return;
          }          if (this.precision !== undefined) {
            newVal = this.toPrecision(newVal, this.precision);
          }
        }        if (newVal >= this.max) newVal = this.max;        if (newVal <= this.min) newVal = this.min;        this.currentValue = newVal;        this.$emit('input', newVal);
      }
    }
  },


查看完整回答
反对 回复 2019-02-06
  • 1 回答
  • 0 关注
  • 520 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信