【发布时间】:2021-07-21 13:13:07
【问题描述】:
不知道为什么我的 ChangeNotifier 不起作用。
这是我的班级:
class LoadingProv with ChangeNotifier {
bool globalLoading;
void setGlobalLoading(bool truefalse) {
if (truefalse == true) {
globalLoading = true;
} else {
globalLoading = false;
}
notifyListeners();
}
bool get getGlobalLoadingState {
return globalLoading;
}
}
这是我在 main.dart 中的 Multiprovider:
MultiProvider(
providers: [
ChangeNotifierProvider<MapData>(create: (ctx) => MapData()),
ChangeNotifierProvider<LoadingProv>(create: (ctx) => LoadingProv()),
],
child: MaterialApp(
这是我在 main.dart Widget 构建中的代码(BuildContext 上下文):
Consumer<LoadingProv>(builder: (context, loadingState, child) {
return Text(loadingState.getGlobalLoadingState.toString());
}),
这就是我调用 setGlobalLoading 的方式:
final loadingProv = LoadingProv();
loadingProv.setGlobalLoading(true);
不幸的是,我的 loadingState.getGlobalLoadingState 总是打印为 false。但我可以调试它变成了真的。
【问题讨论】:
标签: flutter flutter-provider flutter-change-notifier