el-tree中default-checked-keys屬性變化不生效

el-tree中default-checked-keys屬性變化不生效

這裡是筆者在開發 MAUI 應用時踩到的坑,以及一些筆記的彙總。

最後更新 2023/1/18 下午10:02
水星梦月
預計閱讀 2 分鐘
分類
.NET
標籤
.NET C# MAUI

站長開發Dotnet9網站後台前端的文章編輯分類管理功能時遇到了element-uitree元件使用問題,個人嘗試未解決,下面一文是前端大佬給出的解決方案,至於問題是什麼、怎麼解決的,請接著看吧,希望對大家有用。

正文開始


前言:使用element-uitree元件時,天真的以為只要動態修改default-checked-keys這個屬性值得變化,預設勾選的值也會隨之變化,實際發現並不是這樣的。

我們先看看官網上對default-checked-keys的定義:(看完依舊覺得沒問題)

於是我就去探尋了一下原因是啥:監聽到defaultCheckedKeys的變化後遍歷陣列,添加選取狀態,但是當defaultCheckedKeys陣列減少時,前面設定的選取的key不會取消。

原因是:tree.vue中使用watch監聽default-checked-keys值得變化,呼叫了以下方法:

在 tree-store.js 中又使用了此方法

終於知道原因了,只有監聽到default-checked-keys值變化時才會遍歷default-checked-keys陣列設定給裡面的值設定選取狀態,但是沒有取消選取狀態的操作,所以當在default-checked-keys原有的陣列裡面增加需要選取的資料,新增的節點會被選取,反之則不會!!!

這該如何是好???

思路:

  1. 修改依賴代碼

我在這邊部落格中已提到:el-tree 處理大量資料

  1. 再仔細看看文件找思路,找到了:就是呼叫setCheckedKeys方法,將需要選取的key值陣列傳進去,他會重新設定選取狀態:

使用該方法的時候注意了:

  1. tree已經存在dom中後呼叫,如果tree沒有載入完成,setCheckedKeys是不存在的,所以我們需要使用this.$nextTick(callback)方法,該方法會在 dom 載入完畢之後,執行回呼函數。

  2. 呼叫完這個方法後,如果你使用懶加載載入節點的話你手動設定的半選狀態會沒有哦,記得重置一下半選。

本文來自轉載。

作者:水星夢月

原文標題:el-tree 中 default-checked-keys 屬性變化不生效

原文連結:https://blog.csdn.net/monparadis/article/details/114087838

繼續探索

延伸閱讀

更多文章
同分類 / 同標籤 2023/9/21

【譯】基於XAML的跨平台框架對比分析

多年來,基於XAML的UI框架已經有了很大的發展。這些框架主要包含:支援跨平台應用的Avalonia UI, Uno Platform和 .NET MAUI。如果微軟早點推出一個類似Flutter這樣的跨平台UI框架,我們可能就不會有這麼多的選擇。

繼續閱讀