Flutter 如何在flatter中使用Provider包创建全局变量?

Flutter 如何在flatter中使用Provider包创建全局变量?,flutter,dart,Flutter,Dart,我的颤振应用程序需要一个全局变量,该变量不显示(因此没有UI更改),但每次更改时都需要运行一个函数。我一直在看教程等,但它们的用途似乎比我需要的要复杂得多,我更喜欢使用最简单的方法,仍然被认为是“良好实践” 大致上我想做的是: //inside main.dart int anInteger = 0; int changeInteger (int i) = { anInteger = i; callThisFunction(); } //inside another file cha

我的颤振应用程序需要一个全局变量,该变量不显示(因此没有UI更改),但每次更改时都需要运行一个函数。我一直在看教程等,但它们的用途似乎比我需要的要复杂得多,我更喜欢使用最简单的方法,仍然被认为是“良好实践”

大致上我想做的是:

//inside main.dart
int anInteger = 0;

int changeInteger (int i) = {
  anInteger = i;
  callThisFunction();
}

//inside another file
changeInteger(9);

您可以在新文件中创建一个新的
,以存储全局变量及其相关方法。无论何时要使用此变量,都需要导入此文件。全局变量及其相关方法必须是
静态的
。请注意您在问题中提到的
callThisFunction
,它也需要是静态的(因为它将在静态上下文中调用)。e、 g

文件:globals.dart

文件:main.dart


哪里是
调用此函数()
?它是在另一个小部件中还是与小部件完全无关?你能提供一个这个函数的例子吗?调用函数可以在任何地方工作,它只是通过Flatter audioplayer插件播放一个声音,那么我的答案肯定对你有用。是的,我刚刚尝试过,效果很好,谢谢!
class Globals {
  static var anInteger = 0;
  static printInteger() {
    print(anInteger);
  }
  static changeInteger(int a) {
    anInteger = a;
    printInteger(); // this can be replaced with any static method
  }
}
import 'globals.dart';
...
FlatButton(
  onPressed: () {
     Globals.changeInteger(9);
  },
...