带Web组件的Dart库布局

带Web组件的Dart库布局,dart,dart-webui,Dart,Dart Webui,我的程序运行良好,直到有必要构建一个使用自定义web组件的库。我不明白达特在抱怨什么。它给出了一个警告,说它“无法解析my_库”,这导致了错误,“没有此类WebComponent”。我的尝试是基于。这是我的密码: myapp.dart: 库我的库; 导入“dart:html”; 导入“包:web_ui/web_ui.dart”; 第二部分“幻觉飞镖”; void main(){ //启用此选项可在浏览器中使用阴影DOM。 //useShadowDom=true; } myapp.html:

我的程序运行良好,直到有必要构建一个使用自定义web组件的库。我不明白达特在抱怨什么。它给出了一个警告,说它“无法解析my_库”,这导致了错误,“没有此类WebComponent”。我的尝试是基于。这是我的密码:

myapp.dart:

库我的库;
导入“dart:html”;
导入“包:web_ui/web_ui.dart”;
第二部分“幻觉飞镖”;
void main(){
//启用此选项可在浏览器中使用阴影DOM。
//useShadowDom=true;
}
myapp.html:


示例应用程序
在花式选项文本框中键入颜色名称,按下按钮并
看看会发生什么!
fancyoption.dart(在同一web/out目录中):

my_库的一部分;
类FancyOptionComponent扩展了WebComponent{
按钮元素\u按钮;
TextInputElement_textInput;
FancyOptionComponent(){
}
插入空格(){
_button=this._root.query('.fancy option button');
_textInput=this._root.query('.fancy option text');
//将此web组件的背景色设置为指定的颜色
final changeColorFunc=(e)=>this.style.backgroundColor=\u textInput.value;
_按钮.onClick.listen(changeColorFunc);
}
}
fancyoption.html:


点击我!

正确的答案被张贴在一条评论中——转载了克里斯·巴克特的回答,作为未来读者的答案


“web组件是一个独立的、可重用的组件,因此fancyoption.dart不应该是主应用程序的一部分。”

我在web/out文件夹中嗅探生成的dart代码,注意到生成的fancyoption.dart文件将自己声明为库。我回到了未生成的代码,将fancyoption.dart作为自己的库,并从myapp.dart导入它。这使得程序可以无错误地运行。然而,这是正确的吗?每个web组件都应该有自己的库?是的,没错。web组件是一个独立的、可重用的组件,因此
fancyoption.dart
不应该是
主应用程序的一部分。我也有同样的问题。声明main.dart为mylib的一部分。但是web/out/main.dart声明“library mylib;”编译器抱怨它应该是mylib的一部分然后是一堆错误。