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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

React useState hook:將 setter 傳遞給子功能更新

React useState hook:將 setter 傳遞給子功能更新

瀟湘沐 2022-07-08 10:54:23
關(guān)于 React 鉤子,我有幾個(gè)彼此相關(guān)的問題:useState和useCallback.究竟何時(shí)需要功能更新?1.1。如果 setter 函數(shù)接收到一個(gè)函數(shù),它的參數(shù)將始終是之前的狀態(tài)?如果我想從子組件更新父狀態(tài),我應(yīng)該如何將設(shè)置器傳遞給子組件 - 將其包裝在另一個(gè)函數(shù)中作為回調(diào),如此處所述?只是按照這里的建議直接傳遞?2.1。每種方法的原因和優(yōu)點(diǎn)/缺點(diǎn)是什么?如果我可以直接傳遞它并且我正在使用備忘錄,那么這里是否需要 useCallback ?如果我想在從孩子更新父狀態(tài)時(shí)使用最新的狀態(tài)數(shù)據(jù),我應(yīng)該怎么做?4.1。在這種情況下向孩子傳遞回調(diào)有用嗎?
查看完整描述

1 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

1. 究竟什么時(shí)候需要功能更新?


您可能需要更新組件的任何狀態(tài)。例如,您通過 api 從服務(wù)器獲取用戶,您需要將該用戶存儲(chǔ)在您的組件中。為此,您需要 useState 來存儲(chǔ)該用戶對(duì)象。這是示例:


const [user, setUser] = useState({}); // declaration


let newUser = u; // u is coming from api

setUser(newUser);

1.1。如果 setter 函數(shù)接收到一個(gè)函數(shù),它的參數(shù)將始終是之前的狀態(tài)?


是的。類組件中使用了 setState 之類的 setter 函數(shù)。這是僅更新狀態(tài)字段的示例:


this.setState({username: 'khabir'});

在這里,您正在使用以前的狀態(tài)更新狀態(tài):


this.setState(prevState =>{

   return{

        counter : prevState.counter +1

   }

})

2.如果我想從子組件更新父狀態(tài),我應(yīng)該如何將設(shè)置器傳遞給子組件-將其包裝在另一個(gè)函數(shù)中作為回調(diào),如此處所述?只是按照這里的建議直接傳遞?


兩個(gè)例子都是一樣的。你可以使用任何人。


3. 如果我可以直接傳遞它并且我正在使用備忘錄,那么是否需要使用這里解釋的 useCallback ?


如果您將任何函數(shù)引用從父組件傳遞給子組件,則會(huì)在每次渲染 Parent 時(shí)創(chuàng)建它,因此 prevProps 和 props 不再相同,即使它們是相同的。


要應(yīng)用備忘錄,我們需要確保函數(shù)引用不會(huì)在每次渲染 Parent 時(shí)不必要地重新創(chuàng)建。這就是使用 useCallback 的原因。請(qǐng)完整閱讀該文章以獲得更好的理解。


4.如果我想在從child更新父狀態(tài)時(shí)使用最新的狀態(tài)數(shù)據(jù),我應(yīng)該怎么做?


您不能直接從子組件更新父狀態(tài),但您可以將函數(shù)引用發(fā)送到子組件并從在父組件上定義(函數(shù))的子組件調(diào)用該函數(shù)。在該函數(shù)體中(在父級(jí)中),您可以更新父組件的狀態(tài)。


4.1。在這種情況下向孩子傳遞回調(diào)有用嗎?


是的,正如我在問題 4 的答案中所說的那樣。


查看完整回答
反對(duì) 回復(fù) 2022-07-08
  • 1 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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