簡體   English   中英

問題:Dart/Flutter 傳遞參數不起作用

[英]Question : Dart/Flutter passing parameters not working

對不起,如果我的問題很愚蠢,但我正在自己研究它並且沒有太多經驗。 :) 感謝您的幫助!

我想把一個map改成JSON。

我試着按照https://docs.flutter.dev/development/data-and-backend/json#creating-model-classes-the-json_serializable-way這個例子,但它沒有像我預期的那樣工作。

假設我使用的 class 是

class User {
   String? name;
}

User({name});

我有一個 json 作為String userJson = {"name":"Dart"}

我試圖將 json 解碼為 Map 並將其更改為 User 實例。

當我執行print(userJson["name"])時,它會打印“Dart”,但是如果我將其放入用戶 class

User user = User(name: value);
print(user.name);

它打印出 null。

為什么該值未保存到用戶中?

當我將值傳遞為

User.fromJson(Map<String, dynamic> json) {
   name = json["name"];
}

User user = User.fromJson(map);
print(user.name);

那么當然它運作良好。

正如我之前所說,為什么我不能將“name”值傳遞給 User 參數?

在構造函數中使用this.name代替。

像這樣:

class User {
  String? name;
  User({this.name});
}

沒有this. ,來自構造函數的name ,與 class 中的name不同。

您需要在User class 內部構建。

例子:

class User {
  String? name;
  String? address;
  int? age;
  User({this.name, this.address, this.age});
}

暫無
暫無

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

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