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

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

使用初始化的 useState 的目的

使用初始化的 useState 的目的

ABOUTYOU 2022-10-27 16:15:13
我不明白將 useState 與初始化程序一起使用的目的。下面是一個示例,我在這里設(shè)置了一個保留在本地存儲中的計數(shù)器,我沒有使用箭頭函數(shù)來初始化它。const [count, setCount] = useState(JSON.parse(localStorage.getItem("count")))下面的示例使用箭頭函數(shù)進(jìn)行初始化。const [count, setCount] = useState(()=>JSON.parse(localStorage.getItem("count")))有人可以解釋何時使用箭頭功能以及用于什么目的。
查看完整描述

1 回答

?
炎炎設(shè)計

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個贊

文檔中所述

initialState參數(shù)是初始渲染期間使用的狀態(tài)。在隨后的渲染中,它被忽略。如果初始狀態(tài)是昂貴計算的結(jié)果,您可以提供一個函數(shù),該函數(shù)將僅在初始渲染時執(zhí)行。

因此,在傳遞一個值時,每次渲染都會計算該值。

// Will call JSON.parse and get item "count" from local storage

// on **every** render

const [count, setCount] = useState(JSON.parse(localStorage.getItem("count")))

傳遞回調(diào)只會調(diào)用一次。


// Will call JSON.parse and get item "count" from local storage

// **once** on initial render

const [count, setCount] = useState(()=>JSON.parse(localStorage.getItem("count")))

在下一個示例中,將一個值calc()(類似于第一種情況)作為初始狀態(tài)將在每次渲染時記錄“調(diào)用”。雖然有回調(diào),但不會。


const calc = () => {

  console.log("called");

  return 42;

};


const App = () => {

  // value: calc() 

  // const [state, setState] = useState(calc());


  // callback : () => calc()

  const [state, setState] = useState(calc);

  return (

    <>

      {state}

      <button onClick={() => setState(p => p + 1)}>render</button>

    </>

  );

};


查看完整回答
反對 回復(fù) 2022-10-27
  • 1 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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