我的页面上有一个表格。 当我填写表格时,如果有效,则会出现一个加载弹出窗口,然后我开始执行计算。根据计算状态,加载弹出窗口上的消息将更改。
我正在尝试在提供程序中执行一个功能,该功能将根据弹出窗口的状态更改消息。 当我打印值时,它们可以正确显示,但我的消息在小部件中没有改变
我怎么称呼我的屏幕:
return MultiProvider(
providers: [
ChangeNotifierProvider<FormCalculatorNotifier>(
create: (BuildContext context) => FormCalculatorNotifier()
),
ChangeNotifierProvider<LoaderNotifier>(
create: (BuildContext context) => LoaderNotifier()
),
],
child: CalculatorScreen(),
);
在屏幕上,我如何调用弹出窗口和计算:
Expanded(
child: ButtonComponent.primary(
context: context,
text: AppTextButton.CALCUL,
onPressed: () async {
await _formProvider.submitForm(context);
if(_formProvider.state == FormProviderState.isSuccess){
// --------------------------------------
// Here I call the popup with the message variable
DialogComponent.loadingPopUp(context: context, description: _loaderProvider.message);
// --------------------------------------
// Here I try to change the popup message because I have my calculations
_loaderProvider.state = LoaderState.isLoadingJsons;
await _loaderProvider.updateMessage();
}
},
),
),
弹出通知器:
class LoaderNotifier with ChangeNotifier {
LoaderState state = LoaderState.isReady;
String message = "Start...";
Future<void> updateMessage() async{
print('update message');
if(state == LoaderState.isLoadingJsons){
message = "Loading files...";
}
notifyListeners();
}
}
编辑:我刚刚看到我的问题是我从DialogComponent调用了updateMessage函数之后
如果我要遵循的逻辑是研究表格是否适合显示弹出窗口,然后执行计算,并根据计算结果更改弹出窗口的消息,该怎么办,因为之后我将调用updateMessage函数?