没有为“ThemeProvider”类型定义“of”方法。在颤振中
Posted
技术标签:
【中文标题】没有为“ThemeProvider”类型定义“of”方法。在颤振中【英文标题】:The method 'of' isn't defined for the type 'ThemeProvider'. in Flutter 【发布时间】:2022-01-17 17:22:57 【问题描述】:我是 Flutter 的初学者,只是按照 YouTube tutorial 构建用户配置文件,而一切正常,但 Theme Provider 给了我错误,我不明白发生了什么你们可以帮助我,错误是 The method 'of' isn't defined for the type 'ThemeProvider'
,我收到错误
@override
Widget build(BuildContext context)
final user = UserPreferences.getUser();
return ThemeProvider(
initTheme: user.isDarkMode ? MyThemes.darkTheme : MyThemes.lightTheme,
child: Builder(
builder: (context) => MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeProvider.of(context),
title: title,
home: const ProfilePage(),
),
),
);
完整代码太长了,我附上github link 供参考,谢谢你的进步。
在依赖更新 theme_provider 后,我在下面又遇到了 2 个错误,我附上了它的 screenshot。
【问题讨论】:
【参考方案1】:它是 themeOf 而不是 of。 可以查看官方文档here
class MyApp extends StatelessWidget
@override
Widget build(BuildContext context)
final user = UserPreferences.getUser();
return ThemeProvider(
initTheme: user.isDarkMode ? MyThemes.darkTheme : MyThemes.lightTheme,
child: Builder(
builder: (context) => MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeProvider.themeOf(context),
title: title,
home: const ProfilePage(),
),
),
);
),
),
),
);
【讨论】:
嘿@Saral 仍然出现错误,方法 'themeOf' 没有为类型 'ThemeProvider' 定义 你是否在依赖项中添加了theme_provider并导入到你的文件中? 因为我在你的 github 代码中看不到这一点 没有,但是现在我在依赖项中添加了theme_provider并导入它,现在我又遇到了2个错误我将更新错误的屏幕截图你可以在上面看到它。以上是关于没有为“ThemeProvider”类型定义“of”方法。在颤振中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Enzymes shallow 和 styled-component 的 ThemeProvider 测试样式化组件?
已发布的样式组件反应库无权访问用户应用程序 ThemeProvider
为啥 css-in-js 系统需要 ThemeProvider/useTheme