如何从const对象中获取值?

时间:2016-08-04 05:26:44

标签: dart

我在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'

所以我该怎么做?

谢谢!

1 个答案:

答案 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"
  )
);

这样,当您访问配置属性时,您也可以获得正确的自动完成功能,并且可以使用简单的.表示法来访问属性。