eGroupTeam / course-frontend

0 stars 2 forks source link

createContext與Provider #38

Open kevinlin3 opened 1 year ago

kevinlin3 commented 1 year ago

image image

如圖,在createContext時我丟了四個參數進去,於是編譯器要求我設定Provider的value時一定要全部照抄,不能改變型別、不能改變參數名,也不能只給其中一組state變數。

那我們自己宣告createContext的意義是什麼呢? 感覺只要有第二張圖的useState宣告完丟進Provider的value裡,就能自動產生第一張圖的內容了。

jitsungwu commented 1 year ago

如果我沒記錯的話,是在typescript才這樣強制,這就有點像interface,強迫使用者要實作這些內容。

kevinlin3 commented 1 year ago

Problem Solved

  1. How to use React.createContext() with Examples
  2. 後來自己試了一下,如果createContext時不設定任何參數,那Provider value={} 內也是隨便我丟,要是沒有的話;可是一但設定任何參數,編譯器就會強迫我的value寫得和宣告createContext時一樣。 image 但這樣還是能run起來。確實如老師所說,只是typescript檢查用而已。
  3. 範例中還有展示,單純用物件作為useContext的內容,而不是一組state變數,這種寫法說不定能用於只在每次開啟app時初始化的內容。