昨天我們完成了精美的用藥清單介面,但目前的按鈕只是純展示的靜態畫面。今天我們要為系統注入靈魂,透過 React 最核心的功能——useState,讓「確認服用」按鈕真正具備點擊互動的效果。
Step 1:引入 useState 並轉換資料狀態
打開 src/components/MedicationList.jsx。首先在檔案最上方引入 useState,接著把昨天寫死的 medications 陣列,改用 useState 來管理。這樣一來,只要資料發生變動,React 就會自動幫我們重新渲染畫面。

Step 2:撰寫狀態更新函數
在 useState 下方,新增一個 handleTakeMedication 函數。這個函數會接收藥物的 id,然後透過 map 迴圈找出被點擊的那筆資料,將它的 status 改為 'taken':
Step 3:綁定 onClick 點擊事件
最後,往下捲動到 return 區塊,找到我們昨天的 標籤,把剛剛寫好的函數綁定到按鈕的 onClick 事件上:
成功的畫面如下圖,會看到原本顯示確認服用被按下之後變成已服用

