亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

antd為Tree組件標題附加操作按鈕功能

 更新時間:2022年08月16日 11:45:59   作者:曲鳥???????  
這篇文章主要介紹了antd為Tree組件標題附加操作按鈕功能,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

一、前言

使用antd的tree組件實現下面這樣的模塊樹,點擊標題請求其下列表的數據,點擊標題旁邊的操作圖標則執(zhí)行對應的增刪改功能:

二、實現方案

1.封裝一個設置樹標題的方法,通過開關改變state來控制圖標按鈕是否可見: 

處理樹數據(name、children)

  const setTree = (module_data: any) => {
    return module_data.map((item: any) => {
      let _json = { ...item };
      _json.name = setTreeTitle(item);
      _json.children = item.children ? setTree(item.children) : [];
      return _json;
    });
  };

賦值給Tree的treeData:

<Tree
   		...
        treeData={setTree(treeData)} 
        ...
        fieldNames={{ title: 'name', key: 'id', children: 'children' }}
      />

2.樹標題被選中時,則調用刷新列表的方法:

onSelect={(value: any, e: any) => {
      if (e.selected) {
        treeSelectFunc(value[0]);
      }
    }}

3.但需要注意的坑是,由于我增加了刪除功能,當執(zhí)行刪除操作后,樹處于選中狀態(tài)的話就會報錯,因為處于選中狀態(tài)就會調用刷新列表的方法,但該數據已經被我刪除了,可能因此報錯: 

所以我們需要創(chuàng)建一個state來存儲當前選中的數據:

const [selectId, setSelectId] = useState<any>(null);

然后在onSelect方法中判斷新選中的數據是否是當前數據,如果是則不再執(zhí)行請求方法:

onSelect={(value: any, e: any) => {
  const selectValue = value[0]
  if (e.selected && selectValue !== selectId) {
    treeSelectFunc(selectValue);
    setSelectId(selectValue)
  }
}}

這樣就解決了刪除數據可能報錯的問題。

三、總結

到此這篇關于antd為Tree組件標題附加操作按鈕功能的文章就介紹到這了,更多相關antd為Tree組件按鈕功能內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Redis底層數據結構之dict、ziplist、quicklist詳解

    Redis底層數據結構之dict、ziplist、quicklist詳解

    本文給大家詳細介紹了Redis的底層數據結構:dict、ziplist、quicklist的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-09-09
  • 使用redis如何生成自增序列號碼

    使用redis如何生成自增序列號碼

    這篇文章主要介紹了使用redis如何生成自增序列號碼,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Redis設置key的過期時間

    Redis設置key的過期時間

    本文主要介紹了Redis設置key的過期時間,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • python中使用redis用法詳解

    python中使用redis用法詳解

    Redis擁有豐富的數據結構,擁有事務功能,保證命令的原子性。由于是內存數據庫,讀寫非常高速,可達10w/s的評率,所以一般應用于數據變化快、實時通訊、緩存等。這篇文章給大家講解一下Python如何使用Redis,并進行相關的實戰(zhàn)操作。
    2022-12-12
  • Caffeine實現類似redis的動態(tài)過期時間設置示例

    Caffeine實現類似redis的動態(tài)過期時間設置示例

    這篇文章主要為大家介紹了Caffeine實現類似redis的動態(tài)過期時間示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • redis主從連接不成功錯誤問題及解決

    redis主從連接不成功錯誤問題及解決

    這篇文章主要介紹了redis主從連接不成功錯誤問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-01-01
  • Redis教程(十五):C語言連接操作代碼實例

    Redis教程(十五):C語言連接操作代碼實例

    這篇文章主要介紹了Redis教程(十五):C語言連接操作代碼實例,本篇博客是該系列博客中的最后一篇,在這里將給出基于Redis客戶端組件訪問并操作Redis服務器的代碼示例,需要的朋友可以參考下
    2015-05-05
  • Redis模糊查詢的幾種實現方法

    Redis模糊查詢的幾種實現方法

    本文主要介紹了Redis模糊查詢的幾種實現方法,包括兩種方法KEYS , SCAN,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • redis使用watch秒殺搶購實現思路

    redis使用watch秒殺搶購實現思路

    這篇文章主要為大家詳細介紹了redis使用watch秒殺搶購的實現思路,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 利用Redis實現訂單30分鐘自動取消

    利用Redis實現訂單30分鐘自動取消

    本文主要介紹了利用Redis實現訂單30分鐘自動取消,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06

最新評論