偶發的el-select無法選擇的問題

      網友投稿 1871 2025-04-01

      問題起源

      最近借鑒開源管理系統若依(http://www.ruoyi.vip/)開發公司的管理系統,尤其是其使用VUE的前端。在借鑒若依用戶管理時遇到一個很怪的BUG。這個bug不能準確復現,但是希望通過這次問題闡述幫助整理清楚問題原因。

      問題定位

      在開發用戶管理界面,編輯已有用戶賬號時,其操作界面如下:

      這次,我們遇到的問題是角色選項時,雖然返回的數據可以自動選中之前已經選擇的角色,但是無法勾選新角色,也無法取消已選角色,這讓我們陷入沉思,明明前端代碼是一樣的啊?為什么若依系統中可以,而自己的系統中就不可以呢?

      關鍵代碼

      我們來看一下這個對話框的代碼,

      .... .....

      我們剔除掉無關緊要或者與本次問題肯定無關的其他代碼部分,出問題的便是上方這個el-select組件。el-select組件官網:https://element.eleme.cn/#/zh-CN/component/select。文檔中也并沒有特別著名什么。因此,我們也正常書寫這段代碼。其中的form.roleIds格式為數組,data中,有:

      data() { return { // 表單參數 form: {} } }

      偶發的el-select無法選擇的問題

      獲取用戶已有角色的接口方法:

      /** 修改按鈕操作 */ handleUpdate(row) { this.reset(); const userId = row.userId || this.ids; // getUser為接口 getUser(userId).then(response => { this.form = response.data; // 現有用戶數據 this.roleOptions = response.roles; // 獲取所以角色權限 this.form.roleIds = response.roleIds; // 獲取用戶已有選項 this.open = true; // 打開對話框 this.title = "修改用戶"; // 對話框標題 this.form.password = ""; // 不修改密碼 }); }, reset() { this.form = { userId: undefined, deptId: undefined, userName: undefined, nickName: undefined, password: undefined, phonenumber: undefined, email: undefined, sex: undefined, status: "0", remark: undefined, postIds: [], roleIds: [] }; this.resetForm("form"); },

      我們獲取用戶數據方法也基本相同,準確的說,沒有什么不同,但是我們的仍然是不可選的。

      在網絡檢索“el-select”無法選中問題后,我們嘗試了一種可行的方法。

      解決問題

      一種說法是在form初始化時,其中的roleIds并沒有被添加到vue的自動監聽機制中,所以其值變化并沒有引起el-select的視圖刷新。但是,經過我們對form數據進行watch監聽,form也并沒有發生改變。

      盡管如此,我們仍然嘗試了文中給出的解決辦法:使用this.$set(this.form, 'roleIds', newValue)設置已有角色,如下所示:

      this.$set(this.form, 'roleIds', response.result.data.roleIds)

      如此,竟然成功的解決了問題。

      總結

      最終,我們猜測,仍然是由于form.roleIds沒有被vue自動監聽機制發現,所以el-select無法做到視圖與數據的更新。

      我們可以手動使用this.$set來解決該問題。

      Vue

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel怎么更換照片背景顏色?Excel更換照片背景顏色的方法
      下一篇:Mysql主從架構-主庫宕機如何恢復業務
      相關文章
      亚洲欧美在线x视频| 亚洲熟妇成人精品一区| 亚洲精品无码高潮喷水A片软| 亚洲国产情侣一区二区三区| 国产AV无码专区亚洲Av| 久久青青草原亚洲av无码| 久久精品国产亚洲AV天海翼| 亚洲AV无码XXX麻豆艾秋| 亚洲欧美日本韩国| 亚洲国产精品自在自线观看| 亚洲男同gay片| 亚洲a∨国产av综合av下载| 亚洲乱亚洲乱妇24p| 日本亚洲欧美色视频在线播放| 亚洲欧美一区二区三区日产| 亚洲熟妇无码八V在线播放| 亚洲精品无码mⅴ在线观看| 亚洲人成色77777在线观看| 亚洲中文字幕无码mv| 亚洲精品无码不卡在线播放| 亚洲aⅴ无码专区在线观看春色| 日本亚洲中午字幕乱码| 亚洲男人天堂2020| 亚洲精品高清国产一线久久| 亚洲第一极品精品无码久久| 亚洲今日精彩视频| 亚洲最新在线视频| 国产成人精品日本亚洲直接| 亚洲精品精华液一区二区| 成人亚洲网站www在线观看 | 亚洲国产精品综合福利专区| 亚洲国产精品日韩在线观看| 亚洲天堂免费在线| 亚洲AV无码AV男人的天堂不卡| 亚洲国产一区明星换脸| 亚洲人成中文字幕在线观看| 337p欧洲亚洲大胆艺术| 日本亚洲精品色婷婷在线影院| 亚洲av午夜国产精品无码中文字| 亚洲精品视频在线看| 亚洲国产精品无码久久SM|