flutter - 如何在Flutter中使用提供程序包创建全局变量?

标签 flutter dart

我的Flutter应用程序需要一个不会显示的全局变量(因此用户界面不会更改),但是每次更改时都需要运行一个函数。我一直在浏览教程等,但是它们似乎都比我需要的要复杂得多,我更喜欢使用仍然被认为是“良好实践”的最简单方法。
大概我想做的是:

//inside main.dart
int anInteger = 0;

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

//inside another file
changeInteger(9);

最佳答案

您可以在新文件中创建一个新的Class来存储全局变量及其相关方法。每当您要使用此变量时,都需要导入此文件。全局变量及其相关方法需要为static。请注意您在问题中提到的callThisFunction,它也必须是静态的(因为它将在静态上下文中调用)。例如
文件:globals.dart

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
  }
}
文件:main.dart
import 'globals.dart';
...
FlatButton(
  onPressed: () {
     Globals.changeInteger(9);
  },
...

关于flutter - 如何在Flutter中使用提供程序包创建全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63196739/

相关文章:

android - 如何仅在 Flutter 的 datepicker 中显示年份?

class - 如何在 flutter (dart) 中访问其他类的方法?

解决这个迷宫游戏的算法

dart - flutter 导航到新屏幕不起作用

dart - 返回的将来总是比期望值小1

angular - Dart Angular 2 Transclusion 使用带有多个选择器的 ng-content

flutter - 如何打开/查找由 path_provider 创建的文件?

java - 将 Cordova 插件转换为 Flutter 插件

html - 如何使用 Flutter Mailer Package 发送复杂的邮件

flutter - Google Cloud SQL 连接抖动