【发布时间】:2019-10-22 15:08:05
【问题描述】:
我的 ChangeNotifierProvider 没有被调用....
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<MyGlobals>(
builder: (context) => MyGlobals(),
child: MaterialApp(
theme: MyGlobals().GetTheme() == "dark" ? ThemeData(fontFamily: 'ERAS', primaryColor: Colors.black, accentColor: Colors.amberAccent, secondaryHeaderColor: Colors.black54):
ThemeData(fontFamily: 'ERAS', primaryColor: Colors.white, accentColor: Colors.black, secondaryHeaderColor: Colors.white70),
home: MyHomePage(),
));
}
}
这是 MyGlobals:
String _theme = "dark";
class MyGlobals with ChangeNotifier {
getTheme() => _theme;
void setTheme(String _themecolor) {
_theme = _themecolor;
notifyListeners();
}
}
我没有收到任何错误,只是没有被调用。我正在从另一个 .dart 文件调用 setTheme 并且它不是 changenotifierprovider 没有被调用。 MyGlobals 是与上面的 ChangeNotifierProvider 代码分开的 .dart 文件。
【问题讨论】:
-
你需要一个 Consumer 来监听变化
-
您能具体说明一下吗?
-
我的意思是,你在哪里调用
setTheme方法?你能添加你的 MyHomePage 小部件 -
没有位于不同 .dart 文件中的 MyGlobals 类。我也想保持这种状态。
-
你打电话给
setTheme吗?
标签: android-studio flutter dart listener provider