為什麼需要使用功能更新形式的 React useState?
P粉155551728
P粉155551728 2023-10-22 15:37:50
0
2
460

我正在閱讀有關功能更新的 React Hook 文件並查看以下引用:

“ ”和“-”按鈕使用函數形式,因為更新 值基於先前的值

但我看不出需要功能更新的目的是什麼,以及它們與直接使用舊狀態計算新狀態之間有什麼區別。

為什麼 React useState Hook 的更新器功能需要功能更新形式? 有哪些範例可以讓我們清楚地看到差異(因此使用直接更新會導致錯誤)?

例如,如果我從文件中更改此範例

function Counter({initialCount}) {
  const [count, setCount] = useState(initialCount);
  return (
    <>
      Count: {count}
      <button onClick={() => setCount(initialCount)}>Reset</button>
      <button onClick={() => setCount(prevCount => prevCount + 1)}>+</button>
      <button onClick={() => setCount(prevCount => prevCount - 1)}>-</button>
    </>
  );
}

直接更新count

function Counter({initialCount}) {
  const [count, setCount] = useState(initialCount);
  return (
    <>
      Count: {count}
      <button onClick={() => setCount(initialCount)}>Reset</button>
      <button onClick={() => setCount(count + 1)}>+</button>
      <button onClick={() => setCount(count - 1)}>-</button>
    </>
  );
}

我看不出行為有任何差異,也無法想像計數不會更新(或不是最新的)的情況。因為每當計數發生變化時,都會呼叫 onClick 的新閉包,捕獲最新的 count

P粉155551728
P粉155551728

全部回覆(2)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!