react中usestate改變值不渲染怎么解決

蝸牛 互聯網技術資訊 2022-05-05 166 0

這篇文章主要介紹“react中usestate改變值不渲染怎么解決”,在日常操作中,相信很多人在react中usestate改變值不渲染怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”react中usestate改變值不渲染怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

方法:1、利用“const [arr, setArr]=useState([改變值])”修改State值;2、創建一個新的數組,并將原數組的值賦值給新數組,并用“setState(新數組)”修改State,將棧中原數組所指向的地址改變即可。

本教程操作環境:Windows10系統、react17.0.1版、Dell G3電腦。

react中usestate改變值不渲染怎么辦

React中默認淺監聽,當State值為對象時,棧中存的是對象的引用(地址),setState改變的是堆中的數據

所以此時 setArr(arr) 后,棧中的地址還是原地址,React淺監聽到地址沒變,故會認為State并未改變,故沒有重渲染頁面

解決

思路:將棧中原arr所指向的地址改變即可

示例如下:

1)直接setState(要修改的值)

const?[arr,?setArr]?=?useState([])
setArr(1)

2)新創建一個數組newArr,將原數組的值賦值給新數組,并setState(newArr)

const?[arr,?setArr]?=?useState([])
const?newArr?=?arr.slice(1)
setArr(newArr)

利用ES6的拓展符

const?[arr,?setArr]?=?useState([])
setArr([...arr])

到此,關于“react中usestate改變值不渲染怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注蝸牛博客網站,小編會繼續努力為大家帶來更多實用的文章!

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

評論

日本韩欧美一级A片在线观看