我在app.config.dart创建了一个const对象,代码如下:
const configObj = const {
'webServer': const {
'appBaseHref' : "/"
},
'auth0': const {
'apiKey': "foo",
'domain': "bar",
'callbackUrl': "callback"
}
};
现在在我的主dart文件中导入app.config.dart
并尝试获取值,现在想知道如何做到这一点。 configObj.auth0.apiKey
生成错误EXCEPTION: Class 'ImmutableMap' has no instance getter 'auth0'
。
所以我该怎么做?
谢谢!
答案 0 :(得分:3)
Dart不支持使用.
应该是:
configObj['auth0']['apiKey'];
或者,您可以为您的配置创建类,如
class WebServerConfig {
final String appBaseHref;
const WebServerConfig(this.appBaseHref);
}
class Auth0Config {
final String apiKey;
final String domain;
final String callbackUrl;
const Auth0(this.apiKey, this.domain, this.callbackUrl);
}
class MyConfig {
final WebServerConfig webServer;
final Auth0Config auth0;
const MyConfig(this.webServer, this.auth0);
}
const configObj = const MyConfig(
const WebServerConfig("/"),
const Auth0Config(
"foo",
"bar",
"callback"
)
);
这样,当您访问配置属性时,您也可以获得正确的自动完成功能,并且可以使用简单的.
表示法来访问属性。