查看当前的useContext()
文档,似乎我们可以在两个地方指定上下文的默认值或初始值:
- 一旦在createContext()
- 或者当我们指定
<MyContext.Provider value={value}>
时,行尾的value
为初始值
(#1的初始值示例在此页中,而#2的初始值示例在开头提到的文档中。甚至在文档中,他们可能在两个地方都这样做:
const ThemeContext = createContext('light'); // ONCE HERE, but some example use `null`
export default function MyApp() {
const [theme, setTheme] = useState('light');
return (
<>
<ThemeContext.Provider value={theme}> // AND THERE HERE AGAIN, theme is 'light'
)
所以我不确定为什么可以有两个地方,哪一个应该使用?
createContext返回一个上下文对象。组件可以通过将上下文传递给useContext()和"value"是你的useContex中的一个或多个状态。