微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Dart / Flutter 嵌套类静态访问

如何解决Dart / Flutter 嵌套类静态访问

我正在尝试使用嵌套类的一个版本在我的 Flutter 应用程序中创建一个常量字符串树。我希望它们被嵌套,以便随着应用程序的增长快速找到 const 字符串,但仍然有额外的“速度”,即为 Text() 小部件使用 const 关键字。

但是,我很难在 const Text() 小部件中使用它们。

这是一个示例:

class Strings {
  static const String ok = 'OK';
  static TechnicianStrings technicianStrings = TechnicianStrings();
}

class TechnicianStrings {
  TechnicianStrings();
  final String createTech = 'Create Technician';
  final String technician = 'Technician';
}

在整个应用程序中,我想这样使用这些常量字符串:

const Text(Strings.ok),// <-- this works
const Text(Strings.technicianStrings.technician),//<-- only works without 'const'
const Text(Strings.technicianStrings.createTech),//<-- only works without 'const'

但是,当我对文本小部件使​​用 const 关键字时,我收到“常量创建的参数必须是常量表达式”的错误

我尝试为 TechnicianStrings 的成员使用不同的“常量和静态”名称,但我收到了文本小部件的错误,例如“无效常量”。我还将 TechnicianStrings 定义为静态常量,并且在该行中出现“必须使用常量值初始化常量变量”的错误

static const TechnicianStrings technicianStrings = TechnicianStrings();

有没有办法将这种嵌套的类结构与 const Text() 小部件一起使用?

解决方法

您需要在 TechnicianStrings 中使用常量构造函数。

class Strings {
  static const String ok = 'OK';
  static const TechnicianStrings technicianStrings = TechnicianStrings();
}

class TechnicianStrings {
  const TechnicianStrings(); // <---
  final String createTech = 'Create Technician';
  final String technician = 'Technician';
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。