让我无法正常运行该程序。运行代码时,我总是遇到编译器问题。请参阅下面的详细信息。有人知道这是怎么回事吗?
我的代码从文件TapScreenToo.dart
中提取:
import 'profiles.dart';
import 'package:flutter/material.dart';
import 'cards.dart';
class PageTapScreen extends StatefulWidget {
final List<Profile> profileList;
Key key;
PageTapScreen({
this.key,
this.profileList,
}) : super(key: key); // constructor
@override
_PageTapScreenState createState() => new _PageTapScreenState();
}
文件profiles.dart
中的配置文件类(那里没有导入语句):
class Profile {
final String ttaKey;
final String imageUrl;
final String displayName;
Profile({
this.ttaKey,
this.imageUrl,
this.displayName,
});
}
文件demoProfiles.dart
中的我的个人资料列表:
import 'profiles.dart';
final List<Profile> demoProfiles = [
new Profile(
ttaKey: "0",
imageUrl: 'http://localhost:8080/photo_0.jpg',
displayName: 'abc',
),
new Profile(
ttaKey: "1",
imageUrl: 'http:// ... etc
),
]
所有这些都在main.dart
import 'package:flutter/material.dart';
import 'tapScreenToo.dart';
import 'demoProfiles.dart';
class _MyHomePageState extends State<MyHomePage> {
final Key keyOne = PageStorageKey('pageOne');
...
@override
void initState() {
tapScreen = PageTapScreen(
key: keyOne,
profileList: demoProfiles, <--- error points here
);
启动时我收到编译器消息:
compiler message: lib/main.dart:68:20: Error: A value of type 'dart.core::List<#lib1::Profile>' can't be assigned to a variable of type 'dart.core::List<#lib2::Profile>'.
compiler message: Try changing the type of the left hand side, or casting the right hand side to 'dart.core::List<#lib2::Profile>'.
compiler message: profileList: demoProfiles,`
我尝试投射(List <Profile>)
,但这似乎是失败的,或者我只是做错了。
注意:当我标记出错误行并调试到故障位置时,我可以看到keyOne
和demoProfiles
的值都与预期的一样。请注意,这些代码段位于通过import
命令链接的不同文件中。
当我查看其余代码时,可以看到import 'profiles.dart'
在哪里被多次调用。
我不明白该错误信息。我还研究了this posting with a similar error,,但我只是看不到这段代码在做什么,也不知道如何解决它。
答案 0 :(得分:4)
您需要在main.dart
中更改导入:
import 'tapScreenToo.dart';
import 'demoProfiles.dart';
由于main.dart
只能包含packages:
个导入,称为绝对导入。
因此将导入更改为:
import package:mypackage/path/tapScreenToo.dart
import package:mypackage/path/demoProfiles.dart
检查:
https://github.com/dart-lang/sdk/issues/33076
https://www.dartlang.org/tools/pub/get-started#importing-libraries-from-packages