最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決element-ui的下拉框有值卻無法選中的情況

 更新時間:2020年11月07日 09:15:15   作者:jcat_李小黑  
這篇文章主要介紹了解決element-ui的下拉框有值卻無法選中的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題描述:

在使用Vue框架和element-ui開發(fā)時,下拉框遇見一個問題,在函數(shù)中改變了頁面中的某個值,在函數(shù)中查看是修改成功了,但在頁面中沒有及時刷新改變后的值,也就是下拉框值無法選中。(踩坑踩得莫名其妙)

代碼段:

<el-select v-model="value" placeholder="請選擇" @change="change()">
   <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>

解決方法:

出現(xiàn)這個問題好像是因為下拉框數(shù)據(jù)是循環(huán)掉別的接口得來的,因為數(shù)據(jù)層次太多,render函數(shù)沒有自動更新,需手動強制刷新所以我直接強制刷新了值,而forceUpdate就是重新render。

寫一個方法,在select的change事件中調(diào)用此方法,運用 this.$forceUpdate()強制刷新,頁面正常選值。

 change(){
   this.$forceUpdate()
 },

小結(jié):

同理,forceUpdate()這個方法也適用一些很深的組件 state 已經(jīng)改變了的時候,可以在該組件上面調(diào)用,解決頁面v-for中修改item屬性值后頁面頁面值不改變的問題。

補充知識:解決element ui select多選下拉框,在編輯表單記錄時沒有回顯數(shù)據(jù),默認選中的問題

前端使用vue,項目中使用的是element ui組件,在使用select下拉框多選時,新增記錄時select多選下拉框正常使用,沒問題。但是在編輯記錄時,編輯界面也為select下拉框賦值了,卻沒有顯示數(shù)據(jù)。

先放一個select多選下拉框編輯時正確的加載數(shù)據(jù)的顯示效果圖:

下拉框代碼如下:

<el-form-item prop="czfaIds" label="處置方案">
 <el-select v-model="form.czfaIds" multiple style="width:80%;" placeholder="請選擇" clearable :disabled="showControl">
   <el-option
       v-for="item in czfas" 
       :key="item.value"
       :label="item.wsdFamc" 
       :value="item.id" 
    />
  </el-select>
</el-form-item>

下拉框中的數(shù)據(jù)源czfas是一個數(shù)組,選中后的值也是一個數(shù)組。但是在后端存儲的時候是轉(zhuǎn)換成字符串存到數(shù)據(jù)庫中的,所以在編輯界面從后端獲取的返回值是一個字符串,首選要把這個字符串轉(zhuǎn)換成數(shù)組,綁定到select 的v-model屬性上。

代碼如下:

  // 編輯
  queryEditRow(index, row) {
   this.titleInfo = '編輯'
   this.dialogVisible = true
   this.form = Object.assign({}, row)

   // 將字符串轉(zhuǎn)換成數(shù)組,綁定到select控件的v-model屬性上
   this.form.czfaIds = row.czfaIds.split(',')

   this.showbtn = true
   this.showControl = false
  },

但是發(fā)現(xiàn)還是有問題,顯示的是選中的方案的id值,而且沒有將選擇的選項選中。

如下圖:

分析:select選擇器對數(shù)據(jù)的顯示,是匹配到select下拉框數(shù)據(jù)源中對應(yīng)的value值時則會顯示相應(yīng)的label;若是沒有匹配到,則顯示的是該value。

顯然,這里是因為沒有匹配到下拉框中的value值,直接顯示的這個字段的值。

在瀏覽器控制臺中輸出數(shù)據(jù)源的數(shù)據(jù):

在瀏覽器控制臺輸出返回的字符串轉(zhuǎn)換成數(shù)組后的值:

發(fā)現(xiàn)select下拉框中的id 和 v-mode里邊綁定的id的數(shù)據(jù)類型不一致,雖然數(shù)據(jù)的值是一樣的,但是一個是字符串,一個是整型數(shù)值。將后端返回的字符串在轉(zhuǎn)換成數(shù)組時,轉(zhuǎn)換成整形數(shù)組,下拉框即可正確顯示。

代碼如下:

  // 編輯
  queryEditRow(index, row) {
   this.titleInfo = '編輯'
   this.dialogVisible = true
   this.form = Object.assign({}, row)

   // 將字符串轉(zhuǎn)換成數(shù)組,此時是字符串數(shù)組
   var arrStringCzfaIds = row.czfaIds.split(',')
   // 將字符串數(shù)組的每一項轉(zhuǎn)換成Number,生成一個新的數(shù)組
   var arrIntCzfaIds = []
   for (var arrInt in arrStringCzfaIds) {
    arrIntCzfaIds.push(parseInt(arrStringCzfaIds[arrInt]))
   }
   // 將新的Number數(shù)組,綁定到select空間的v-model上
   this.form.czfaIds = arrIntCzfaIds

   this.showbtn = true
   this.showControl = false
  },

此時,顯示的效果就是本文開頭的效果了。

以上這篇解決element-ui的下拉框有值卻無法選中的情況就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

永清县| 资中县| 墨江| 修文县| 高阳县| 涿州市| 自贡市| 乌苏市| 永年县| 即墨市| 尚义县| 黔江区| 射洪县| 高青县| 揭阳市| 三明市| 天镇县| 西青区| 温宿县| 安丘市| 陇西县| 留坝县| 淮阳县| 达孜县| 马关县| 南汇区| 辽中县| 舞阳县| 禹州市| 靖江市| 仁怀市| 临泽县| 保定市| 黄山市| 炉霍县| 云阳县| 汝南县| 衡东县| 灯塔市| 江阴市| 罗平县|