Enums Dart:从JavaScript变量初始化枚举

Enums Dart:从JavaScript变量初始化枚举,enums,environment-variables,constants,dart,dart2js,Enums,Environment Variables,Constants,Dart,Dart2js,在我的HTML文件中,我有: var serverName=“dev.myapp.com:8080”; 然后,在我的Dart代码中: 将“dart:js”导入为js; 字符串SERVER_NAME=js.context[“serverName”]; 字符串SIGNIN\u PLACE\u URL=“http://$SERVER\u NAME/SIGNIN”; 字符串SIGNOUT\u PLACE\u URL=“http://$SERVER\u NAME/SIGNOUT”; 班级{ 静态常量符

在我的HTML文件中,我有:


var serverName=“dev.myapp.com:8080”;
然后,在我的Dart代码中:

将“dart:js”导入为js;
字符串SERVER_NAME=js.context[“serverName”];
字符串SIGNIN\u PLACE\u URL=“http://$SERVER\u NAME/SIGNIN”;
字符串SIGNOUT\u PLACE\u URL=“http://$SERVER\u NAME/SIGNOUT”;
班级{
静态常量符号空间=常量位置(符号位置片段URL);
静态常量SignoutPlace=const Place.40;签出\位置\片段\ URL);
静态获取值=>[SigninPlace,SignoutPlace];
最终字符串片段URL;
const Place.uz(此.fragmentURL);
}
我在我的“枚举”中得到了一个关于两个值的
fragmentURL
参数的错误:

常量创建的参数必须是常量表达式


因此,看起来我需要使这些
片段URL
s
const
,但不确定如何进行。这里的解决方案是什么?

因为
服务器名称在编译时是未知的,它不能是常量。
如果希望
SigninPlace
/
SignoutPlace
为常数
SERVER\u NAME
也必须为常数

可能的解决办法

上课地点{
静态字符串服务器名称;
静态最终登录空间=施工地点(“登录”);
静态最终签到地点=施工地点(“签到”);
静态获取值=>[SigninPlace,SignoutPlace];
字符串获取片段URL{
地图位置={
“登录”:“http://${SERVER_NAME}/signin”,
“注销”:“http://${SERVER_NAME}/signout”};
返回位置[_fragmentURL];
}
最后一个字符串_fragmentURL;
const Place.u(此.u片段URL);
}
void main(列表参数){
Place.SERVER_NAME=“aServer”;
打印(Place.SigninPlace.fragmentURL);
}
如果将包含插值的字符串移动到函数(此处为getter)中,则插值将被延迟,直到请求值为止。此时,您的
服务器\u名称应已分配。

如果在设置
SERVER\u NAME
之前请求了
fragmentURL
,则可以添加异常或不同的错误处理。

我正在搜索类似的解决方法,但尚未找到。