Flutter 调用notifyListeners()时未更新对话框状态

Flutter 调用notifyListeners()时未更新对话框状态,flutter,dart,flutter-provider,Flutter,Dart,Flutter Provider,我正在使用管理我的颤振应用程序中的状态。我有一个对话,最初应该显示一个CircularProgressBar,然后是一些内容。当我需要CircularProgressBar更改内容时,我调用notifyListeners(),但这似乎没有任何作用。这是我的一些代码,如果您还需要查看,请告诉我 调用以显示对话框的方法: displayDialog(){ 返回显示对话框( 上下文:上下文, 禁止:错误, 生成器:(BuildContext上下文){ 返回ChangeNotifierProvider(

我正在使用管理我的颤振应用程序中的状态。我有一个对话,最初应该显示一个CircularProgressBar,然后是一些内容。当我需要CircularProgressBar更改内容时,我调用notifyListeners(),但这似乎没有任何作用。这是我的一些代码,如果您还需要查看,请告诉我

调用以显示对话框的方法:

displayDialog(){
返回显示对话框(
上下文:上下文,
禁止:错误,
生成器:(BuildContext上下文){
返回ChangeNotifierProvider(
生成器:()=>CreateAccountProvider(),
子项:CreateNewUserDialog(),
);
},
);
}
最终createAccountButton=材质(
标高:5.0,
颜色:颜色。浅绿色,
子:材质按钮(
minWidth:MediaQuery.of(context).size.width,
填充:来自LTRB(20.0,15.0,20.0,15.0)的边缘设置,
已按下:(){
createAccountProvider.createAccountClicked(上下文);
显示对话框();
},
孩子:排(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
图标(
图标。播放箭头,
颜色:颜色,白色,
),
大小盒子(
宽度:5,
),
正文(
“创建帐户”,
textAlign:textAlign.center,
样式:TextStyle(颜色:Colors.white),
),
],
),
),
);
提供程序中的相关代码:

//加载和加载消息的初始值
布尔加载=假;
字符串加载消息;
void createAccountClicked(构建上下文){
打印(“单击创建帐户”);
validateAllFields();
if(name!=null&&
电子邮件!=空&&
密码!=null&&
确认密码!=空){
加载=真;
loadingMessage=“创建新用户”;

notifyListeners();//您的[Provider.of()]方法在哪里,[Provider](例如,ChangeNotifierProvider、StreamProvider等)ChangeNotifierProvider在displayDialog方法中。我已将部分代码的Provider.of添加到对话中。[ChangeNotifierProvider]提供程序是CreateAccountDialogProvider,[Provider.of()]尝试获取CreateAccountProvider,所以我想,也许你应该调用CreateAccountProvider类中的notifyListeners()方法,而不是CreateAccountDialogProvider类对不起,我的错。没有CreateAccountDialogProvider。只有CreateAccountProvider。我已经更新了代码。
displayDialog(){返回showDialog()(上下文:context,barrierDismissible:false,builder:(BuildContext上下文){return StatefulBuilder(builder:(context,state){return ChangeNotifierProvider(builder:(\u)=>CreateAccountProvider(),child:CreateNewUserDialog(),);};});}
//尝试在//方法和via状态中传递状态((){//尝试停止加载方法}