iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1
Modern Web

關於React,那些我不知道的系列 第 20

狀態管理的救星?! Recoil 想用參數來切換 state 怎麼辦? ( selectorFamily )

  • 分享至 

  • xImage
  •  

情境

假如我們正在做一個表單,讓使用者填寫自己的銀行名稱、分行名稱、銀行帳號、戶名,為了提升使用者體驗,我們把銀行名稱、分行名稱 做成 dropdown 的選單方便使用者填寫。出於某些原因,我們必須將這些資料存入 Global 供其他地方共享。

條件限制

  1. 可透過 api 取得系統內所有銀行的id及名稱 {get} /banks
  2. 可透過 api 取得系統內所有分行的id及名稱 {get} /branches?bankID=

資料格式為

 // 銀行名單
 [
    { id: 0, name: "中國信託" },
    { id: 1, name: "玉山銀行" },
    { id: 2, name: "王道銀行" },
    { id: 3, name: "富邦銀行" },
    { id: 4, name: "國泰銀行" }
  ]
 // 分行名單
 [
    { id: 0, name: "中信分行1" },
    { id: 1, name: "中信分行2" },
    { id: 2, name: "中信分行3" },
    { id: 3, name: "中信分行4" }
 ]

釐清需求

https://ithelp.ithome.com.tw/upload/images/20201005/20130721PJQn4uORsY.png

  1. 需要將所有 bank 的 option 存起來
  2. 需要將所有 branch 的 option 存起來
  3. 需要根據當前 bank 拿到對應的 branch option
  4. 需要將當前的 bank 以及最後被選到的 branch 存起來

今天就先讓大家思考一下、嘗試看看,可以如何跟 Recoil 結合


上一篇
狀態管理的救星?! Recoil 來自遠方的狀態,如何處理Async State?
下一篇
狀態管理的救星?! Recoil 想用參數來切換 state 怎麼辦? ( selectorFamily ) 2
系列文
關於React,那些我不知道的30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言