createContext
讓您可以建立元件可以提供或讀取的Context。
const SomeContext = createContext(defaultValue)
參考
createContext(defaultValue)
在任何元件之外呼叫 createContext
來建立 Context。
import { createContext } from 'react';
const ThemeContext = createContext('light');
參數
defaultValue
:當讀取 Context 的元件上方樹狀結構中沒有相符的 Context 提供者時,您希望 Context 擁有的值。如果您沒有任何有意義的預設值,請指定null
。預設值意在作為「最後手段」的後備方案。它是靜態的,永遠不會隨著時間改變。
回傳值
createContext
會回傳一個 Context 物件。
Context 物件本身不包含任何資訊。它代表其他元件讀取或提供的 Context 是*哪一個*。通常,您會在上面的元件中使用 SomeContext.Provider
來指定 Context 值,並在下面的元件中呼叫 useContext(SomeContext)
來讀取它。Context 物件有一些屬性
SomeContext.Provider
讓您可以將 Context 值提供給元件SomeContext.Consumer
是一種替代且很少使用的讀取 Context 值的方法
SomeContext.Provider
將您的元件包裝在一個 Context 提供者中,以為內部所有元件指定此 Context 的值
function App() {
const [theme, setTheme] = useState('light');
// ...
return (
<ThemeContext.Provider value={theme}>
<Page />
</ThemeContext.Provider>
);
}