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

Antd中Table列表行默認(rèn)包含修改及刪除功能的封裝方法

 更新時(shí)間:2022年12月22日 11:53:29   作者:曲鳥  
這篇文章主要介紹了Antd中Table列表行默認(rèn)包含修改及刪除功能的封裝,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、前言

ant-design是非常不錯(cuò)、方便的一款前端組件庫(kù),而這次用到的ProComponents則是在 Ant Design 上進(jìn)行了自己的封裝,更加易用,與 Ant Design 設(shè)計(jì)體系一脈相承,無(wú)縫對(duì)接 antd 項(xiàng)目,樣式風(fēng)格與 antd 一脈相承,無(wú)需魔改,渾然天成。一些預(yù)設(shè)行為也達(dá)到了更少的代碼,更少的 Bug的目的。

這里我使用ProComponents的editable-table時(shí)發(fā)現(xiàn)它的表格默認(rèn)自帶了修改刪除功能:

在這里插入圖片描述

代碼封裝的actionRender方法提供了相應(yīng)的參數(shù)來(lái)使用默認(rèn)的修改刪除:

在這里插入圖片描述

自己使用的項(xiàng)目也有非常多的表單,大部分都包含修改刪除功能,所以對(duì)我來(lái)講也是非常實(shí)用的,但它的修改是在行內(nèi)編輯,我的需要彈窗編輯,所以這里根據(jù)自己的思路封裝了一下,下面分享給大家。

二、給Table封裝默認(rèn)的修改、刪除功能

整個(gè)封裝過(guò)程把思路理清楚了也能很簡(jiǎn)單的實(shí)現(xiàn),首先是將彈窗方法(不同功能的表單會(huì)有差異)傳遞給封裝的公共Table:

  //彈窗方法
  const showModal = (type: string, values: any = {}) => {
    values['formType'] = type;
    setFormData(values);
    setFormVisible(true);
  };

傳遞給table:

     <LimTable
        actionRef={ref}
        columns={columns}
        func={UserView}
        showModal={showModal}
        headerTitle="用戶列表"
      />

然后在公共Table組件中定義默認(rèn)表單的操作方法(修改,刪除)這里只提供思路,代碼不適用于你的項(xiàng)目:

  //默認(rèn)的表單操作dom
  const defaultColumnDom = {
    update: (record: any) => (
      <a key="update" onClick={() => showModal(PATCH, record)}>
        修改
      </a>
    ),
    delete: (record: any) => (
      <a
        key="delete"
        onClick={() => {
          deleteDataFunc(func, record.id);
        }}
      >
        刪除
      </a>
    ),
  };

然后放入設(shè)置表單操作欄的方法中:

  //設(shè)置表單options(操作欄)的方法
  const setDefualtColumnsOptions = () => {
    for (let i = 0; i < columns.length; i++) {
      if (columns[i].dataIndex === 'option') {
        if (!optionRender) {
          //沒(méi)有配置optionRender則默認(rèn)增加修改、刪除功能
          columns[i].render = (_: any, record: any) => [
            defaultColumnDom.update(record),
            defaultColumnDom.delete(record),
          ];
        } else {
          columns[i].render = (_: any, record: any) =>
            optionRender({ update: defaultColumnDom.update(record), delete: defaultColumnDom.delete(record) }, record);
        }
        break;
      }
    }
  };

最后加入useEffect中即可完成:

 useEffect(() => {
    setDefualtColumnsOptions();
  }, []);

三、實(shí)現(xiàn)效果

當(dāng)我們不傳遞optionRender時(shí),列表默認(rèn)攜帶修改、和刪除功能:

在這里插入圖片描述

當(dāng)我們傳遞了optionRender時(shí),列表根據(jù)傳遞的渲染操作欄:

只包含修改功能

      <LimTable
        actionRef={ref}
        columns={columns}
        func={UserView}
        optionRender={(dom: any) => [dom.update]}
        showModal={showModal}
        headerTitle="用戶列表"
      />

在這里插入圖片描述

包含修改功能并附加文字:

      <LimTable
        actionRef={ref}
        columns={columns}
        func={UserView}
        optionRender={(dom: any) => [dom.update, '曲鳥']}
        showModal={showModal}
        headerTitle="用戶列表"
      />

在這里插入圖片描述

這樣我們又封裝好了一個(gè)組件了,減少了后面編碼的重復(fù)性工作,也間接減少了BUG的產(chǎn)生。

到此這篇關(guān)于Antd中Table列表行默認(rèn)包含修改及刪除功能的封裝的文章就介紹到這了,更多相關(guān)Antd中Table列表行封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • echarts圖例過(guò)多顯示問(wèn)題解決方案

    echarts圖例過(guò)多顯示問(wèn)題解決方案

    開(kāi)發(fā)Echarts圖標(biāo)時(shí)經(jīng)常遇到數(shù)據(jù)量過(guò)多引起的圖例錯(cuò)亂,這個(gè)時(shí)候我們應(yīng)該如何處理?下面這篇文章主要給大家介紹了關(guān)于echarts圖例過(guò)多顯示問(wèn)題的解決方案,需要的朋友可以參考下
    2023-11-11
  • 通過(guò)JavaScript使Div居中并隨網(wǎng)頁(yè)大小改變而改變

    通過(guò)JavaScript使Div居中并隨網(wǎng)頁(yè)大小改變而改變

    自己的頁(yè)面太難看了,要居中沒(méi)居中,要顏色沒(méi)顏色,但是無(wú)論是怎么樣都得使登錄的框居中吧,下面與大家分享下通過(guò)JavaScript可以簡(jiǎn)單的使Div在頁(yè)面上居中,隨著網(wǎng)頁(yè)大小的改變做出相應(yīng)的改變
    2013-06-06
  • js css+html實(shí)現(xiàn)簡(jiǎn)單的日歷

    js css+html實(shí)現(xiàn)簡(jiǎn)單的日歷

    這篇文章主要為大家詳細(xì)介紹了由html、css、javascript結(jié)合實(shí)現(xiàn)的簡(jiǎn)單日歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • JSONP跨域請(qǐng)求實(shí)例詳解

    JSONP跨域請(qǐng)求實(shí)例詳解

    JSONP(JSON with Padding)是JSON的一種“使用模式”,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問(wèn)的問(wèn)題。接下來(lái)通過(guò)本文給大家介紹JSONP跨域請(qǐng)求實(shí)例詳解,感興趣的朋友一起看下吧
    2016-07-07
  • JS讀寫CSS樣式的方法匯總

    JS讀寫CSS樣式的方法匯總

    這篇文章主要為大家詳細(xì)匯總了JS讀寫CSS樣式的方法,內(nèi)容詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • ie9 提示''console'' 未定義問(wèn)題的解決方法

    ie9 提示''console'' 未定義問(wèn)題的解決方法

    關(guān)掉開(kāi)發(fā)者工具之后,在狀態(tài)欄發(fā)現(xiàn)提示'console' 未定義,為什么之前的運(yùn)行沒(méi)有問(wèn)題,之后的就不行呢
    2014-03-03
  • JavaScript之HTMLCollection接口代碼

    JavaScript之HTMLCollection接口代碼

    JavaScript之HTMLCollection接口代碼,需要的朋友可以參考下。
    2011-04-04
  • GRID拖拽行的實(shí)例代碼

    GRID拖拽行的實(shí)例代碼

    這篇文章介紹了GRID拖拽行的實(shí)例代碼,有需要的朋友可以參考一下
    2013-07-07
  • js實(shí)現(xiàn)簡(jiǎn)單排列組合的方法

    js實(shí)現(xiàn)簡(jiǎn)單排列組合的方法

    這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)單排列組合的方法,可實(shí)現(xiàn)數(shù)學(xué)上排列組合算法功能,涉及JavaScript數(shù)組與字符串操作技巧,需要的朋友可以參考下
    2016-01-01
  • JavaScript數(shù)組實(shí)現(xiàn)扁平化四種方法詳解

    JavaScript數(shù)組實(shí)現(xiàn)扁平化四種方法詳解

    扁平化,顧名思義就是減少?gòu)?fù)雜性裝飾,使其事物本身更簡(jiǎn)潔、簡(jiǎn)單,突出主題。數(shù)組扁平化,對(duì)著上面意思套也知道了,就是將一個(gè)復(fù)雜的嵌套多層的數(shù)組,一層一層的轉(zhuǎn)化為層級(jí)較少或者只有一層的數(shù)組
    2022-10-10

最新評(píng)論

阿巴嘎旗| 漳州市| 崇州市| 会同县| 高邮市| 仙游县| 乐安县| 清水河县| 信丰县| 平陆县| 民和| 威信县| 白玉县| 大余县| 罗城| 阳江市| 富阳市| 洛隆县| 永定县| 遵义县| 繁昌县| 从江县| 阿鲁科尔沁旗| 兴宁市| 山阴县| 湖口县| 蓬溪县| 河间市| 轮台县| 射阳县| 鲁山县| 清水河县| 北流市| 齐齐哈尔市| 西华县| 长宁县| 杂多县| 兴隆县| 白朗县| 临夏县| 潜山县|