尽管方面没有技术问题
static const,但从体系结构上来说,您可能希望采用其他方法。
Flutter往往 没有 任何全局/静态变量, 而是 使用InheritedWidget。
这意味着您可以编写:
class MyConstants extends InheritedWidget { static MyConstants of(BuildContext context) => context. dependOnInheritedWidgetOfExactType<MyConstants>(); const MyConstants({Widget child, Key key}): super(key: key, child: child); final String successMessage = 'Some message'; @override bool updateShouldNotify(MyConstants oldWidget) => false;}然后插入到应用程序的根目录:
void main() { runApp( MyConstants( child: MyApp(), ), );}并这样使用:
@overrideWidget build(BuilContext context) { return Text(MyConstants.of(context).successMessage);}该代码比的代码多一点
static const,但具有许多优点:
- 适用于热装
- 易于测试和模拟
- 可以用比常量更具动态性的东西代替,而无需重写整个应用程序。
但同时:
- 不会消耗更多的内存(继承的小部件通常创建一次)
- 是高性能的(获取InheritedWidget为O(1))



