簡體   English   中英

Dart json 可序列化 - 如何返回 const IconData

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM