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

react中涉及的增加,刪除list方式

 更新時(shí)間:2024年01月03日 09:47:39   作者:趙乘風(fēng)_i  
這篇文章主要介紹了react中涉及的增加,刪除list方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

react涉及的增加,刪除list

做的項(xiàng)目中有一個(gè)功能是需要對多個(gè)Input組成的list可以新增和刪除。

剛開始想的解決是直接使用index來做,這個(gè)可以新增,但是做不了刪除,會出現(xiàn)list錯(cuò)亂的問題,即使是刪除中間的某一個(gè),但總也是刪除的最后一個(gè)。原因是index-1只會刪除最后一個(gè),再重新渲染后會刷新列表。

如果只是新增但是不填寫內(nèi)容,那么刪除了也無所謂,但如果新增后填寫再刪除就出問題了。

解決辦法是使用唯一標(biāo)識符,也就是id,就是前端自己生成id,根據(jù)id刪除就不會錯(cuò)亂了。

在這個(gè)項(xiàng)目中,因?yàn)樾陆ê途庉嬍峭粋€(gè)頁面,而且在進(jìn)入這個(gè)頁面之后會根據(jù)是否有xxId來區(qū)分是新建還是編輯,因?yàn)闀埱髢蓚€(gè)不同的接口來獲取數(shù)據(jù)。所以在從接口請求回來的返回值那邊做了處理,添加了唯一標(biāo)識符,也就是selfId。我是對dispatch后獲取的result進(jìn)行操作。

如下:

const dealListData = (result) => {
    // console.log('listR', result);
    if (result.length===0) {
        result.push({
            selfId:1
        });
    } else {
        result.map((item, index) => {
            item.selfId = String(index + 1);
            return item;
        });
    }
    // console.log(result);
    return result;
};

新增的函數(shù)

list是指幾個(gè)Input組成的塊,是要對其新增和刪除

handleAdd = () => {
     let selfId = Number(this.state.list[this.state.list.length-1].selfId) + 1;
     // console.log(this.state.list[this.state.list.length-1].selfId +1);
     this.props.form.validateFields((err, value) => {
        if (!err) {
            this.state.list.push({
                selfId:selfId
        });
        this.props.onChange(this.state.list);
      }
   });
}

刪除的函數(shù)

handleDeleteItem = (i, selfId) => {
    this.setState({ list: this.state.list.filter(item => item.selfId !== selfId) }, () => {
          // console.log('delete', this.state.list);
          this.props.onChange(this.state.list);
    });
}

根據(jù)selfId進(jìn)行刪除

因?yàn)閘ist是我又重新封裝的子組件,而值要實(shí)時(shí)反映到父組件上去,需要都需要通過this.props.onChange事件去實(shí)時(shí)更新。這樣刪除和新增就沒有問題了。

總結(jié)

不能根據(jù)下標(biāo)index進(jìn)行新增刪除,會錯(cuò)亂。需要有唯一標(biāo)識符用來更新。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 記錄一次完整的react hooks實(shí)踐

    記錄一次完整的react hooks實(shí)踐

    這篇文章主要介紹了記錄一次完整的react hooks實(shí)踐,通過一個(gè)簡單示例,介紹了react hooks,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • React中常見的TypeScript定義實(shí)戰(zhàn)教程

    React中常見的TypeScript定義實(shí)戰(zhàn)教程

    這篇文章主要介紹了React中常見的TypeScript定義實(shí)戰(zhàn),本文介紹了Fiber結(jié)構(gòu),F(xiàn)iber的生成過程,調(diào)和過程,以及 render 和 commit 兩大階段,需要的朋友可以參考下
    2022-10-10
  • React 使用recharts實(shí)現(xiàn)散點(diǎn)地圖的示例代碼

    React 使用recharts實(shí)現(xiàn)散點(diǎn)地圖的示例代碼

    這篇文章主要介紹了React 使用recharts實(shí)現(xiàn)散點(diǎn)地圖的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 適用于React?Native?旋轉(zhuǎn)木馬應(yīng)用程序介紹

    適用于React?Native?旋轉(zhuǎn)木馬應(yīng)用程序介紹

    這篇文章主要介紹了適用于React?Native?旋轉(zhuǎn)木馬應(yīng)用程序介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Webpack 4.x搭建react開發(fā)環(huán)境的方法步驟

    Webpack 4.x搭建react開發(fā)環(huán)境的方法步驟

    這篇文章主要介紹了Webpack 4.x搭建react開發(fā)環(huán)境的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • React表單容器的通用解決方案

    React表單容器的通用解決方案

    本文主要介紹了React表單容器的通用解決方案,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • React高階組件使用教程詳解

    React高階組件使用教程詳解

    高階組件就是接受一個(gè)組件作為參數(shù)并返回一個(gè)新組件(功能增強(qiáng)的組件)的函數(shù)。這里需要注意高階組件是一個(gè)函數(shù),并不是組件,這一點(diǎn)一定要注意,本文給大家分享React 高階組件HOC使用小結(jié),一起看看吧
    2022-12-12
  • 在React聊天應(yīng)用中實(shí)現(xiàn)圖片上傳功能

    在React聊天應(yīng)用中實(shí)現(xiàn)圖片上傳功能

    在現(xiàn)代聊天應(yīng)用中,除了文字和表情,圖片分享也是一個(gè)重要的功能,本文將詳細(xì)介紹如何在基于 React 的聊天應(yīng)用中實(shí)現(xiàn)圖片上傳和預(yù)覽功能,感興趣的小伙伴跟著小編一起來看看吧
    2025-05-05
  • useCallback和useMemo的正確用法詳解

    useCallback和useMemo的正確用法詳解

    這篇文章主要為大家介紹了useCallback和useMemo的正確用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • React Native實(shí)現(xiàn)簡單的登錄功能(推薦)

    React Native實(shí)現(xiàn)簡單的登錄功能(推薦)

    這篇文章主要介紹了React Native實(shí)現(xiàn)登錄功能的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09

最新評論

灌阳县| 垣曲县| 临漳县| 深泽县| 贺兰县| 行唐县| 宜兰市| 白沙| 正镶白旗| 庆安县| 铅山县| 连城县| 梅州市| 万安县| 阳城县| 云和县| 高平市| 商洛市| 临汾市| 兰州市| 监利县| 衡水市| 陵川县| 呈贡县| 淮北市| 特克斯县| 喀什市| 老河口市| 大关县| 泗阳县| 鄯善县| 阳谷县| 崇明县| 亚东县| 句容市| 博乐市| 宁阳县| 定安县| 来凤县| 酉阳| 济南市|