位置参数过多,预​​期为0,但找到3

时间:2019-06-21 05:46:31

标签: flutter dart

我做了一个类通知以初始化我的数据,但是当我在将来的函数中调用它时,它显示了一个错误。

Future <List<Notification>> _getNotification() async {
    var data = await http.get("$baseUrl/efficience001_webservice/notification.php");
    var jsonData = json.decode(data.body);
    List<Notification> notifs = [];
    for (var u in jsonData){
      Notification notif = Notification(u["description"],u["nom_ligne"], u["created_at"]);
      notifs.add(notif);
    }
    print(notifs.length);
    return notifs;
}

class Notification {
  final String description;
  final String nom_ligne;
  final DateTime created_at;

  const Notification({this.description, this.nom_ligne, this.created_at});
}
error: Too many positional arguments , 0 expected, but 3 found.

1 个答案:

答案 0 :(得分:1)

这里的问题是您在Notification类中使用named parameters,但是传递了位置参数。

您有两种解决方法:

  • 为您的班级使用位置参数(删除花括号)。为此,请将Notification类中的构造函数更改为:
const Notification(this.description, this.nom_ligne, this.created_at);
  • 创建Notification类的对象时,请提供命名参数。为此,请在您的for循环中更改一行:
Notification notif =
  Notification(description: u["description"], nom_ligne: u["nom_ligne"], created_at: u["created_at"]);