iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
AI Engineering

用 React x Dify 打造 AI 智慧用藥監測系統系列 第 9

DAY9 讓表單動起來:React 狀態提升 (Lifting State Up) 與新增功能實作

  • 分享至 

  • xImage
  •  

昨天我們完成了「新增用藥」的表單介面。今天我們要為這個表單注入靈魂,讓按鈕真正發揮作用。但在這之前,我們必須先弄懂 React 開發中非常重要的一個核心觀念:「狀態提升 (Lifting State Up)」。

同時,我也會分享今天在實作過程中遇到的一個「白畫面崩潰」真實踩坑紀錄,希望能幫大家避開這個常見的新手陷阱!

一、 觀念解析:為什麼要「狀態提升」?

目前我們的 medications (用藥資料陣列) 是存放在下方的 MedicationList 元件裡面的。但是,上方的 AddMedicationForm 表單也需要把新資料加進這個清單中。

為了解決「兩個不同的元件需要共用同一份資料」的問題,我們必須把狀態往上移動到它們共同的父元件——也就是 App.jsx 之中。

【關鍵程式碼實作】
打開 src/App.jsx,我們將原本在清單裡的狀態「提升」到最上層,並透過 Props 把更新函數 (setMedications) 往下傳遞給表單,讓元件之間可以順利溝通:

https://ithelp.ithome.com.tw/upload/images/20260903/20178797LDvf1mB0xU.jpg
https://ithelp.ithome.com.tw/upload/images/20260903/20178797eLdwcOf19E.jpg
AddMedication是今天的重點可以把我們新增的藥在我們按下確認後出現在下方畫面

二、 完成表單送出功能
我們接著打開 src/components/AddMedicationForm.jsx,加入 useState 來綁定輸入框的值,並實作 handleSubmit 來處理資料新增:
https://ithelp.ithome.com.tw/upload/images/20260903/20178797SDEjjbfec1.jpg
https://ithelp.ithome.com.tw/upload/images/20260903/20178797F2lQjo9T8Z.jpg

以下是成功畫面
https://ithelp.ithome.com.tw/upload/images/20260903/20178797ZzTgSW5Rqw.jpg
https://ithelp.ithome.com.tw/upload/images/20260903/20178797Glb0KIZ4mh.jpg


上一篇
DAY8 擴充系統功能:設計「新增用藥」的表單介面
下一篇
DAY10 完成前端 CRUD 拼圖:實作用藥清單的「刪除」功能
系列文
用 React x Dify 打造 AI 智慧用藥監測系統24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言