1. 程式人生 > 實用技巧 >uni-app 轉h5 input每次輸入一個字元後自動失去焦點

uni-app 轉h5 input每次輸入一個字元後自動失去焦點

背景:每掃一個二維碼 會在weightList數組裡面新增一個物件 ,其中物件中的一個屬性值和input輸入框 進行雙向繫結。在輸入框輸入的時候,每輸入一次,輸入框就自動失去焦點了
錯誤程式碼如下:
<
view v-for="(item, i) in weightList" :key="item"> <view class="bywin-column"> <view class="title"> <text>總數量</text> <
text class="item-required">*</text> </view> <input v-model="item.num" class="bywin-input" placeholder="請輸入" type="number" @input="printDigitNum($event, i)"
/> <text class="bywin-input" style="flex: 0 0 10%"></text> </view> </view>


printDigitNum(e, i) {
const value = e && e.detail.value;
this.$nextTick(() => {
this.weightList = this.weightList.map((v, index) => ({
...v,
num: parseInt(i) === parseInt(index) ? parseInt(value) : v.num,
}));
});
},

問題原有:

問題是有:key="item"引起,input資料繫結後進行模型更新後,view的屬性要重新整理,進行渲染後就重新重新整理的input。如果你是要在程式碼中找view,可以直接找陣列中不變的屬性為key值,而不要用子節點繫結的資料給父節點的屬性賦值。

解決方案:
 <view v-for="(item, i) in weightList" :key="'weightList'+i">