莫莫的宝宝
莫莫的宝宝
  • 发布:2021-03-11 11:01
  • 更新:2021-08-09 10:26
  • 阅读:570

input在多次输入blur后时出现界面值不更新的问题,valueSync是有什么作用的

分类:uni-app
  • 详细请看视频

排查发现是一个叫valueSync的值没有更新,这个问题在安卓重现率更大,input采用v-model、:value、this.form[f] = v使用nextTick和setTimeout包裹也有问题,除此以外将input放在evan-form、cell-view外也是有问题的。

  <evan-form ref="form" :model="form">  
        <evan-form-item label="面积:" pr  

op="">  
<!--          <cell-view mode="slot">-->  
            <view class="num-input">  
              <view>  
                <view style="flex:1">  
                  <input class="text-center" placeholder="请输入" type="text" @blur="numBlur($event,'beginArea',1)"  
                         maxlength="6"  
                         :value="form['beginArea']" confirm-type="send"/>  
                </view>  
                <text> ~</text>  
                <view style="flex:1">  
                  <input class="text-center" type="text" placeholder="请输入" @blur="numBlur($event,'endArea',2)"  
                         maxlength="6"  
                         v-model="form.endArea"/>  
                </view>  
                <view class="num-unit"> ㎡</view>  
              </view>  
            </view>  
<!--          </cell-view>-->  
        </evan-form-item>
numBlur(e, f, min) {  
      let v = e.detail.value  
      console.log(Number(v).toString())  
      if (Number(v).toString() === 'NaN'){  
        v = ''  
        this.msg('请输入数值')  
      }  

      if (v !== '' && min !== undefined && Number(v) < min) {  
        v = String(min)  
        this.msg('不能小于' + v)  
      }  

        this.form[f] = v  
        console.log({...this.form})  
    },
2021-03-11 11:01 负责人:无 分享
已邀请:
6***@qq.com

6***@qq.com

我也遇到这样的问题 安卓8以下会出现这种问题

月子巨

月子巨

valueSync是直接绑定在组件上的model值,简单来说,value并不是直接控制视图的状态,valueSync才是,可以参考源码https://github.com/dcloudio/uni-app/blob/master/src/core/view/components/input/index.vue

该问题目前已经被锁定, 无法添加新回复