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

react hook使用useState更新數(shù)組,無法更新問題及解決

 更新時(shí)間:2024年03月13日 10:11:19   作者:on_風(fēng)而  
這篇文章主要介紹了react hook使用useState更新數(shù)組,無法更新問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問題描述

const [textList, setTextList] = useState(原數(shù)組);
setTextList(新數(shù)組);

當(dāng)修改原數(shù)組時(shí),如果原數(shù)組是個(gè)深層數(shù)組,使用setTextList修改時(shí),不會(huì)觸發(fā)頁面刷新

原因分析

這個(gè)涉及到可變對(duì)象和不可變對(duì)象的知識(shí),

在vue和react中,如果更新可變對(duì)象時(shí),可能會(huì)引起視圖更新,

這是因?yàn)椋瑅ue和react默認(rèn)都是淺監(jiān)聽,只會(huì)監(jiān)聽數(shù)據(jù)的第一層,

如果數(shù)據(jù)是引用類型,內(nèi)層數(shù)據(jù)發(fā)生改變,并不會(huì)監(jiān)聽到。

解決方法

這里應(yīng)該先將原數(shù)組淺拷貝,賦值給新數(shù)組,再修改新數(shù)組(不影響原狀態(tài))

將修改后的新數(shù)組使用setValue傳遞進(jìn)去,這樣就會(huì)引起視圖更新

const [value, setValue] = useState(initialArray);

return{
   //item是個(gè)數(shù)組
    add: (item: T) => setValue([...value, item]),

    removeIndex: (index: number) => {
    // 把value copy一遍,解構(gòu)一遍,再把結(jié)構(gòu)的值為了生成新的數(shù)組,相當(dāng)于淺拷貝,這樣才能觸發(fā)更新數(shù)據(jù)
        const copy = [...value];
        copy.splice(index, 1);
        setValue(copy);
    },
}

總結(jié)

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

相關(guān)文章

  • Ant Design與Ant Design pro入門使用教程

    Ant Design與Ant Design pro入門使用教程

    Ant Design 是一個(gè)服務(wù)于企業(yè)級(jí)產(chǎn)品的設(shè)計(jì)體系,組件庫是它的 React 實(shí)現(xiàn),antd 被發(fā)布為一個(gè) npm 包方便開發(fā)者安裝并使用,這篇文章主要介紹了Ant Design與Ant Design pro入門,需要的朋友可以參考下
    2023-12-12
  • React styled components樣式組件化使用流程

    React styled components樣式組件化使用流程

    styled-components 是react的一個(gè)第三方庫,一種css私有化的方式。用來實(shí)現(xiàn)CSS in JS 的方式之一。在多人協(xié)作中,css必定會(huì)出現(xiàn)命名沖突,與vue的scoped解決方案不同,react用styled-components的給類名加了隨機(jī)字符的方式實(shí)現(xiàn)了css的私有化
    2023-02-02
  • react基于Ant Desgin Upload實(shí)現(xiàn)導(dǎo)入導(dǎo)出

    react基于Ant Desgin Upload實(shí)現(xiàn)導(dǎo)入導(dǎo)出

    本文主要介紹了react基于Ant Desgin Upload實(shí)現(xiàn)導(dǎo)入導(dǎo)出,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • react 頁面加載完成后自動(dòng)執(zhí)行標(biāo)簽的點(diǎn)擊事件的兩種操作方法

    react 頁面加載完成后自動(dòng)執(zhí)行標(biāo)簽的點(diǎn)擊事件的兩種操作方法

    這篇文章主要介紹了react 頁面加載完成后自動(dòng)執(zhí)行標(biāo)簽的點(diǎn)擊事件,本文給大家分享兩種操作方法結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • react?Table準(zhǔn)備Spin?Empty?ConfigProvider組件實(shí)現(xiàn)

    react?Table準(zhǔn)備Spin?Empty?ConfigProvider組件實(shí)現(xiàn)

    這篇文章主要為大家介紹了react?Table準(zhǔn)備Spin、Empty、ConfigProvider組件實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-02-02
  • react如何實(shí)現(xiàn)表格多條件搜索

    react如何實(shí)現(xiàn)表格多條件搜索

    這篇文章主要介紹了react如何實(shí)現(xiàn)表格多條件搜索問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • react18?hooks自定義移動(dòng)端Popup彈窗組件RcPop

    react18?hooks自定義移動(dòng)端Popup彈窗組件RcPop

    這篇文章主要介紹了react18?hooks自定義移動(dòng)端Popup彈窗組件RcPop,react-popup?基于react18+hook自定義多功能彈框組件,整合了msg/alert/dialog/toast及android/ios彈窗效果,需要的朋友可以參考下
    2023-08-08
  • React從命令式編程到聲明式編程的原理解析

    React從命令式編程到聲明式編程的原理解析

    這篇文章主要介紹了React從命令式編程到聲明式編程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • react-redux及redux狀態(tài)管理工具使用詳解

    react-redux及redux狀態(tài)管理工具使用詳解

    Redux是為javascript應(yīng)用程序提供一個(gè)狀態(tài)管理工具集中的管理react中多個(gè)組件的狀態(tài)redux是專門作狀態(tài)管理的js庫(不是react插件庫可以用在其他js框架中例如vue,但是基本用在react中),這篇文章主要介紹了react-redux及redux狀態(tài)管理工具使用詳解,需要的朋友可以參考下
    2023-01-01
  • 使用Jenkins部署React項(xiàng)目的方法步驟

    使用Jenkins部署React項(xiàng)目的方法步驟

    這篇文章主要介紹了使用Jenkins部署React項(xiàng)目的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03

最新評(píng)論

康乐县| 南靖县| 长宁县| 襄垣县| 常德市| 盐边县| 临夏县| 藁城市| 且末县| 都昌县| 常熟市| 无锡市| 赤峰市| 太仆寺旗| 宜都市| 汶上县| 山阴县| 元谋县| 噶尔县| 平远县| 焦作市| 赤壁市| 淄博市| 桃源县| 盘锦市| 张家口市| 丰原市| 东丽区| 鄂州市| 杭州市| 阿克苏市| 资中县| 辽阳县| 郁南县| 大足县| 哈尔滨市| 黑山县| 老河口市| 元谋县| 太谷县| 宝应县|