😸學習多次更新同一個狀態
😸會一直更新同個狀態的就先想到計數器了,來簡單實作一下
+3 的按鈕後,上面的數字一次就要以 3、6、9 這樣的方式以此類推的顯示import { useState } from "react";
import "./styles.css";
export default function Counter() {
  const [number, setNumber] = useState(0);
  return (
    <>
      <h1>React 大秘境 DAY 10</h1>
      <h2>{number}</h2>
      <button onClick={() => {
        setNumber(number + 1);
        setNumber(number + 1);
        setNumber(number + 1);
      }}>+3</button>
    </>
  )
}

😸這邊我們要實現,在下一次畫面重新渲染前多次更新相同的狀態值時
需要以setNumber(n => n + 1)方式處理
那我們來改寫上面的範例
import { useState } from "react";
import "./styles.css";
export default function Counter() {
  const [number, setNumber] = useState(0);
  return (
    <>
      <h1>React 大秘境 DAY 10</h1>
      <h2>{number}</h2>
      <button
        onClick={() => {
          setNumber(n => n + 1);
          setNumber(n => n + 1);
          setNumber(n => n + 1);
        }}
      >
        +3
      </button>
    </>
  );
}
setNumber(n => n + 1); 是一個 function ,他會保留 n 的值並且會把 n 傳遞給下一組更新器使用setNumber(number + 7); 再來 setNumber(n => n + 1); 
import { useState } from "react";
import "./styles.css";
export default function Counter() {
  const [number, setNumber] = useState(0);
  return (
    <>
      <h1>React 大秘境 DAY 10</h1>
      <h2>{number}</h2>
      <button
        onClick={() => {
          setNumber(number + 7);
          setNumber(n => n + 1);         
        }}
      >
        +3
      </button>
    </>
  );
}
😸猜對了嗎?這邊的更新值就是一次變成 8

😸小知識,這邊的更新器命名方式,通常會使用狀態變數的第一個字母來命名