React使用useContext报错:ThemeProvider导出问题求助
问题修复方案
1. 修正ThemeProvider的导入方式
在UseContext.js中,你使用了解构导入{ThemeProvider},但ThemeProvider在ThemeProvider.js里是默认导出的,默认导出不能用解构语法,需修改为默认导入:
// UseContext.js 中的导入语句修改为: import ThemeProvider from "./ThemeProvider"
2. 给UseContexTry组件添加return语句
你的UseContexTry组件未返回JSX内容,直接编写了<ThemeProvider>标签,React组件必须明确返回元素,需补充return:
export default function UseContexTry(){ return ( <ThemeProvider> <FunctionContext/> </ThemeProvider> ) }
3. 处理eslint未使用变量警告
该警告属于误报,ToggleTheme已通过ThemeUpdate.Provider间接传递给子组件,可通过两种方式解决:
- 在
ToggleTheme函数前添加注释忽略警告:// eslint-disable-next-line no-unused-vars - 将
ToggleTheme改为箭头函数,让eslint更容易识别其使用场景:const ToggleTheme = () => { setDarkTheme(prevDarkTheme => !prevDarkTheme) }
内容的提问来源于stack exchange,提问作者Abigiya Terefe
相关产品推荐
相关产品推荐

