flutter - 在这种情况下如何使用提供程序
问题描述
我想创建一个更改应用程序主题模式,我看到了一种使用 Provider 创建它的方法,但我是 Provider 的新手。例如,我想添加一些这样的代码
在我的主要由许多路线组成
解决方案
您想更改应用程序的主题,然后需要将提供程序向上移动,以便它可以覆盖小部件(在这种情况下为应用程序)状态,您可以在 main 方法中执行以下操作:
runApp(ChangeNotifierProvider(
create: (context) => ThemeProvider(),
child:MyApp()
);
现在对于孩子,您可以像这样在构建方法中简单地调用提供者
Widget build(){
var themeProvider = Provider.of<ThemeProvider>(context);
}
或者你可以使用消费者小部件
Consumer<ThemeProvider>(
builder: (context, provider, child) {
//return something
}
)
推荐阅读
- angular - @ViewChild 值在父级中不可用?
- java - 如何防止validationQueryTimeout影响H2中的其他SQL语句
- perl - 如何打印秒表更新值?
- python - 熊猫根据模式计算差异
- java - Java 在一个类中与 mysql 建立连接,但不是不同的类
- javascript - 当我将应用程序从文档模式 IE5 强制转换为更高版本(如 IE 7、8、9 或 edge)时,CSS 样式会受到影响吗?
- c# - 参考窗口
- c++ - 非类型模板参数类型随机变化
- casting - 如何将字符串转换为 uint32 luajit ffi
- matlab - 扭矩 Simulink 模型到脚本文件