第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React Hook useEffect 缺少依賴項:“formData”。包括它或刪除依賴項數(shù)組。

React Hook useEffect 缺少依賴項:“formData”。包括它或刪除依賴項數(shù)組。

烙印99 2023-05-19 14:46:05
當設(shè)置值但缺少依賴項時,將 formData 添加到依賴項中,然后將進入無限循環(huán)  useEffect(() => {    if (id !== 0) {        profileByID(id).then((res) => {            const data = res.data.result;            setTimeout(() => {                setFormData({                    ...formData,                    firstName: data.firstName,                    lastName: data.lastName,                    email: data.email,                });                setbirthDate(new Date(data.birthDate));            }, 1000);        });    }    console.log(true);  }, [id, profileByID]);
查看完整描述

2 回答

?
猛跑小豬

TA貢獻1858條經(jīng)驗 獲得超8個贊

解決方法是將其轉(zhuǎn)換為功能更新:


setFormData(formData => ({

  ...formData,

  firstName: data.firstName,

  lastName: data.lastName,

  email: data.email,

}));

那么你不需要放入formData依賴數(shù)組。


查看完整回答
反對 回復(fù) 2023-05-19
?
素胚勾勒不出你

TA貢獻1827條經(jīng)驗 獲得超9個贊

它會進入無限循環(huán),因為每當您使用 setFormData 更新表單值時,它都會觸發(fā)渲染,而渲染又會再次調(diào)用 useEffect 方法。發(fā)生這種情況是因為您每次使用 setFormData 都在設(shè)置一個新對象。

讓 obj={a: 1,b:2}

obj==={...,a:1} //假

即它們不相同,因此像這樣設(shè)置 setFormData 將始終導(dǎo)致重新渲染并導(dǎo)致無限循環(huán)。這只是 useFormData 如何在幕后比較數(shù)據(jù)的基本說明。所以要解決這個問題,請對所有不同的事物使用不同的 useState 示例

const[firstName, setFirstName]= useState('')

常量[lastName, setLastName]= useState('')

const[email, setEmail]= useState('')

等等..

或者如果有大量數(shù)據(jù),則使用 useReducer 方法,有很多博客,您可以從中瀏覽 useReducer 方法


查看完整回答
反對 回復(fù) 2023-05-19
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號