React之useEffect缺少依賴警告問題及解決
React useEffect缺少依賴警告
代碼:
useEffect(() => {
// ... 省略無關(guān)代碼
setFriends([msg, ...friends]);
}, [])
本意是獲取到msg數(shù)據(jù)后,利用原有的friends,更新出現(xiàn)在的friends數(shù)據(jù)。
警告
React Hook useEffect has a missing dependency: 'friends'.
Either include it or remove the dependency array.
You can also do a functional update 'setFriends(f => ...)'
if you only need 'friends' in the 'setFriends' call react-hooks/exhaustive-deps
原因
大致是在useEffect中引入了friends這個狀態(tài)數(shù)據(jù),讓friends變成了依賴數(shù)據(jù)。
這樣可能會導致循環(huán)渲染的問題。就是friends變化了,然后去通過setFriends方法
去更新了friends,這讓friends又發(fā)生了變化,于是繼續(xù)去調(diào)用setFriends去更新friends…
此時,如果不想讓friends作為依賴項,就用函數(shù)的方式去刪除friends這個外部依賴,
代碼改為這樣
useEffect(() => {
// ... 省略無關(guān)代碼
setFriends(friends => [msg, ...friends]);
}, [])
總結(jié)
至此,問題解決。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
React中useTransition鉤子函數(shù)的使用詳解
React?18的推出標志著React并發(fā)特性的正式到來,其中useTransition鉤子函數(shù)是一個重要的新增功能,下面我們就來學習一下useTransition鉤子函數(shù)的具體使用吧2024-02-02
webpack+react+antd腳手架優(yōu)化的方法
本篇文章主要介紹了webpack+react+antd腳手架優(yōu)化的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
react-native DatePicker日期選擇組件的實現(xiàn)代碼
本篇文章主要介紹了react-native DatePicker日期選擇組件的實現(xiàn)代碼,具有一定的參考價值,有興趣的可以了解下2017-09-09

