如何解决提供商试图更新我的计数,我何时会收到通知?
我无法更新我的用户界面
//// 在这里,我正在控制台中获取更新数据,但无法在我的 UI 内部进行更新
我的 NotificationCountClass
class NotificationCount extends ChangeNotifier{
var count;
NotificationCount({
this.count =0,});
addNotificationCount(){
count++;
notifyListeners();
print("Notification Count $count");
}
}
main :在这里我将小部件包装在 multiprovider 中,以便我可以在我的应用程序中的任何位置使用它
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => AppService()),ChangeNotifierProvider(create: (context) => NotificationCount()),],child: Consumer<AppService>(
builder: (context,appService,child) {
return GetMaterialApp(
title: AppStrings.APP_TITLE,theme: AppTheme.lightTheme,darkTheme: AppTheme.dartTheme,navigatorKey: GlobalVariable.navigatorKey,supportedLocales: [
Locale('en'),localizationsDelegates: [
CountryLocalizations.delegate,themeMode: appService.isDarkMode ? ThemeMode.dark : ThemeMode.light,initialRoute: AppRouter.SPLASH_SCREEN,onGenerateRoute: AppRouter.router.generator,// routes: {
// "/":(context) =>Home(),// "/AppChat" : (context) => AppChat(),// },debugShowCheckedModeBanner: false,// home: AppChat(),);
},),);
// 将状态与消费者小部件一起使用,以便只需要重新构建小部件
Consumer<NotificationCount>(
builder: (context,value,child) {
var count = value.count;
print("Count of Not : $count");
return Text(
"$count",style: TextStyle(
color: Colors.white,);
},
使用提供程序获取 NotificationCount 类,但仍然无法更新 UI
final notificationCount = Provider.of<NotificationCount>(context,listen: false);
解决方法
我可以在我这边重现您的问题,并且可以通过使用 MultiProvider 的构建器而不是 child 来修复它。
代替
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => AppService()),ChangeNotifierProvider(create: (context) => NotificationCount()),],child: Consumer<AppService>(
写一些类似的东西:
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => AppService()),builder: (context,_) => Consumer<AppService>(
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。