【发布时间】:2021-03-14 08:41:57
【问题描述】:
我正在尝试将此 dart 文件 here 转换为使用泛型,尝试在构造函数中初始化一个空列表时出现以下错误。
常量列表文字不能包含类型参数作为类型 参数,例如“T”。尝试将类型参数替换为 不一样的
在这种情况下如何创建一个空列表。下面的代码可以更详细地阐述我的问题
旧文件
enum PostStatus { initial, success, failure }
class PostState extends Equatable {
const PostState({
this.status = PostStatus.initial,
this.posts = const <Post>[],
this.hasReachedMax = false,
});
final PostStatus status;
final List<Post> posts;
final bool hasReachedMax;
PostState copyWith({
PostStatus status,
List<Post> posts,
bool hasReachedMax,
}) {
return PostState(
status: status ?? this.status,
posts: posts ?? this.posts,
hasReachedMax: hasReachedMax ?? this.hasReachedMax,
);
}
@override
List<Object> get props => [status, posts, hasReachedMax];
}
新文件
class PagedState<T> extends Equatable {
const PagedState({
this.status = PagedStatus.initial,
this.items = const <T>[], //ERROR HERE
this.hasReachedMax = false,
});
final PagedStatus status;
final List<T> items;
final bool hasReachedMax;
PagedState copyWith({
PagedStatus status,
List<T> items,
bool hasReachedMax,
}) {
return PagedState(
status: status ?? this.status,
items: items ?? this.items,
hasReachedMax: hasReachedMax ?? this.hasReachedMax,
);
}
@override
List<Object> get props => [status, items, hasReachedMax];
}
【问题讨论】:
标签: dart