我正在嘗試創建一種方法來對我擁有的一些專案進行排序。
abstract class IComposableOrderBy {
String sortBy();
}
class SortByCreatedAt implements IComposableOrderBy {
@override
String sortBy() => r'{ order_by: {created_at: $sort} }';
}
class SortByEmptyFirst implements IComposableOrderBy {
@override
String sortBy() => r'{ products_aggregate: {count: desc} }';
}
enum OrderBy {
asc,
desc,
}
enum SortOptions {
byCreatedAt,
byEmptyFolder,
}
問題是...當我嘗試將其用作地圖時,我收到此錯誤元素型別“型別”無法分配給地圖值型別“IComposableOrderBy”。
final Map<SortOptions, IComposableOrderBy> _sortOptions = {
SortOptions.byCreatedAt: SortByCreatedAt,
SortOptions.byEmptyFolder: SortByEmptyFirst
};
Dart 不支持這個嗎?
請問你能幫幫我嗎?
uj5u.com熱心網友回復:
如果您宣告Map<SortOptions, IComposableOrderBy>,則必須傳遞類的實體IComposableOrderBy,而不是其類Type,將其更改為:
final Map<SortOptions, IComposableOrderBy> _sortOptions = {
SortOptions.byCreatedAt: SortByCreatedAt(),
SortOptions.byEmptyFolder: SortByEmptyFirst()
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517374.html
標籤:扑镖抽象类
上一篇:flutterfirestore使用不考慮大小寫的引數訪問檔案
下一篇:如何訪問子小部件內的父小部件?
