如何正确访问Dart嵌套静态类的属性解决调用报错问题
问题原因
你代码中_TextStyles类内部的boxName等属性被定义为静态成员,静态成员归属于类本身,只能通过_TextStyles.boxName的格式调用,无法通过类的实例访问。而你在OverviewTheme中声明的text是_TextStyles的实例对象,因此用OverviewTheme.text.boxName调用自然会抛出未定义错误。
正确实现方案
将_TextStyles内部的属性改为实例常量即可满足你的链式调用需求,修改后代码如下:
class OverviewTheme { static const Color secondaryColor = Color(0xFFFFFF00); static const Color primaryColor = Color(0xFFFFFFFF); static const Color backgroundColor = Color(0xFF555555); static const _TextStyles text = _TextStyles(); } class _TextStyles { const _TextStyles(); // 移除static修饰,改为实例const属性 final TextStyle boxName = const TextStyle(fontSize: 11, fontWeight: FontWeight.bold); final TextStyle boxDescription = const TextStyle(fontSize: 10); final TextStyle boxNumber = const TextStyle(fontSize: 10, fontStyle: FontStyle.italic); }
修改完成后即可直接通过OverviewTheme.text.boxName的格式访问对应样式属性。
内容的提问来源于stack exchange,提问作者darekm
相关产品推荐
相关产品推荐

