内部错误:。。。模棱两可的引用:';数据网格&x27;在库web/DataGrid.dart和web/out/DataGrid.dart中定义
我使用WebUI创建了一个简单的数据网格进行测试,并且工作正常。然后我决定尝试将其声明为组件。我更改了库引用,现在当我尝试运行应用程序时,它给了我上述错误。您可以在下面看到我的文件结构。当我试图运行它时,我得到“模棱两可引用”消息的原因是,当我进入out目录中的自动生成的DataGrid.dart文件时,它有以下声明内部错误:。。。模棱两可的引用:';数据网格&x27;在库web/DataGrid.dart和web/out/DataGrid.dart中定义,dart,dart-webui,Dart,Dart Webui,我使用WebUI创建了一个简单的数据网格进行测试,并且工作正常。然后我决定尝试将其声明为组件。我更改了库引用,现在当我尝试运行应用程序时,它给了我上述错误。您可以在下面看到我的文件结构。当我试图运行它时,我得到“模棱两可引用”消息的原因是,当我进入out目录中的自动生成的DataGrid.dart文件时,它有以下声明 import 'DataGrid.dart'; ... import '../DataGrid.dart'; 我不明白为什么生成的代码会同时导入它们。我考虑的一件事是,这可能是因
import 'DataGrid.dart';
...
import '../DataGrid.dart';
我不明白为什么生成的代码会同时导入它们。我考虑的一件事是,这可能是因为DataGridPage.html文件实例化了我的DataGrid组件,而DataGridPage.dart文件导入了DataGrid.dart,以便它可以引用DataGridColumn(它需要为DataGrid设置列)。在DataGridPage.dart中,我还附加到某些DataGrid事件,如SortColumnChanged和SelectionChanged,因此我需要在DataGridPage.dart中请求DataGrid实例的副本(我认为没有办法附加到DataGridPage.html中web组件实例化的事件)
你知道我做错了什么吗
以下是我的文件结构:
DataGrid.dart
--------------------------------------------
library datagrid;
...
part 'DataGridColumn.dart';
part 'DataGridRow.dart';
class DataGrid extends WebComponent{...}
DataGridRow.dart
--------------------------------------------
part of datagrid;
class DataGridRow {...}
DataGridColumn.dart
--------------------------------------------
part of datagrid;
class DataGridColumn {...}
DataGrid.html
--------------------------------------------
[contains the component declaration UI]
DataGridPage.html
-----------------------------------------
...
<div is="s-datagrid" id="myDataGrid" ItemsSource="{{app.Assets}}" Columns="{{app.Columns}}"></div>
...
DataGridPage.dart
--------------------------------------------
import 'DataGrid.dart';
import 'Asset.dart';
void main() {
}
DataGridApp _app;
DataGridApp get app {
if (_app == null) {
_app = new DataGridApp();
}
return _app;
}
class DataGridApp{
//provides ItemsSource and DataGridColumn data
}
DataGrid.dart
--------------------------------------------
图书馆数据网格;
...
“DataGridColumn.dart”部分;
“DataGridRow.dart”部分;
类DataGrid扩展WebComponent{…}
DataGridRow.dart
--------------------------------------------
数据网格的一部分;
类DataGridRow{…}
DataGridColumn.dart
--------------------------------------------
数据网格的一部分;
类DataGridColumn{…}
DataGrid.html
--------------------------------------------
[包含组件声明UI]
DataGridPage.html
-----------------------------------------
...
...
DataGridPage.dart
--------------------------------------------
导入“DataGrid.dart”;
导入“Asset.dart”;
void main(){
}
DataGridApp\u应用程序;
DataGridApp获取应用程序{
如果(_app==null){
_app=新建DataGridApp();
}
返回应用程序;
}
类DataGridApp{
//提供ItemsSource和DataGridColumn数据
}
JMessery在github网站上回答了这个问题。他说您需要删除主dart文件中的组件导入。因此,在我的示例中,我将从DataGridPage.dart中删除import'DataGrid.dart'语句。IDE会给你一个警告,但是你可以忽略它,因为它实际上是从out文件夹运行的
jmesserly在github网站上回答了这个问题。他说您需要删除主dart文件中的组件导入。因此,在我的示例中,我将从DataGridPage.dart中删除import'DataGrid.dart'语句。IDE会给你一个警告,但是你可以忽略它,因为它实际上是从out文件夹运行的
我用默认的“Web UI应用程序”xclickcounter验证了相同的行为。如果尝试在主dart文件中导入“xclickcounter.dart”,则在运行它时会显示相同的错误消息。我使用默认的“Web UI应用程序”xclickcounter验证了相同的行为。如果尝试在主dart文件中导入'xclickcounter.dart',则在运行该文件时会显示相同的错误消息。