[英]Dart json serializable - how to return a const IconData
在服務器上存儲 IconData 並使用 JsonSerializable 檢索它,導致 Jenkin android 構建中出現以下錯誤。
此應用程序無法搖樹圖標 fonts。它在以下位置具有 IconData 的非常量實例:
以下代碼dto構建圖標數據object:
@JsonSerializable(explicitToJson: true)
class DrawerIconDataDto extends IconData {
const DrawerIconDataDto(
super.codePoint, {
super.fontFamily,
super.fontPackage,
super.matchTextDirection,
});
/// Create a new instance from a json.
factory DrawerIconDataDto.fromJson(Map<String, dynamic> json) {
return _$DrawerIconDataDtoFromJson(json);
}
/// Convert this instance to a json.
@override
Map<String, dynamic> toJson() => _$DrawerIconDataDtoToJson(this);
}
即使將 const 添加到以下 class 也會導致錯誤。 我試圖向工廠添加一個常量,但這是不可能的。
如何使用 JsonSerializable 從服務器獲取常量 DataIcon object 而無需修改 Jenkins 配置(不允許)。
Dart中, const
表示編譯器可以在編譯時確定該值。 顯然,這不適用於從服務器檢索的數據。
因此,您無法從服務器檢索const
數據。
您可以做的是將所有可能的 IconData 值作為代碼中的const
實例,並從服務器檢索標識符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.