簡體   English   中英

Flutter cast 在開發中運行但在生產中崩潰

[英]Flutter cast runs in development but crashes in production

在調試期間,在我的本地 flutter 環境中允許將 null 轉換為字符串。 但是,當部署到生產環境時,相同的類型轉換將被視為崩潰異常。

代碼可以翻譯成如下:

    final dynamic test = null as String;
    print(test);

實際代碼由 json_serializable package ( https://pub.dev/packages/json_serializable ) 生成,因此交替代碼本身是不可能的。

我的本地環境通過flutter醫生描述:本地flutter環境

生產崩潰可以在Dartpad中模擬https://dartpad.dev/?channel=old

環境有什么不同? 我希望開發環境拋出錯誤,所以它在被推送到生產 state 之前被發現並修復。

我試過將生產環境與開發環境進行比較,但沒有發現可以解釋該行為的主要區別。

as不是使用.toString()

  final dynamic test = null.toString();

同時也使用變量,

  final String data = "${model.filed}";

正如 jamesdlin 在評論中指出的那樣,客戶端不應該信任服務器提供可靠的數據。 實施客戶端空檢查和回退使客戶端更具彈性。

因此,所有使用 json_serializable 聲明的字段都應該標記為可為空。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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