Email( List<String> to, String from, {String subject:null, String message:null, DateTime datetime:null, HashMap<String, List<String>> meta:null, List<Attachment> attachments:null})
得到此错误:
Uncaught NoSuchMethodError: incorrect number of arguments passed to method named ''
Receiver: ""
Tried calling: (Instance of 'JSArray<String>', "will@fallenreaper.com", Instance of '_HashMap<String, Object>')
Found: (to, from, subject, message, datetime, meta, attachments)
我的课程是:
class Email{
Email( List<String> to, String from, {String subject:null, String message:null, DateTime datetime:null, HashMap<String, List<String>> meta:null, List<Attachment> attachments:null}){
//do stuff.
}
}
我试图让它成为必需的往返,但其余的可选地将在地图中传入。我以为我这样做是正确的,但它似乎不正确。
DartPad位于:How to get JTextField name in which is Document placed?
搜索TODO
Composer类是我实现的部分,利用我创建的Email类。
向主题添加一些文本,然后单击“发送”按钮
答案 0 :(得分:2)
您的Email
类'构造函数
Email( List<String> to, String from, {String subject:null, String message:null, DateTime datetime:null, HashMap<String, List<String>> meta:null, List<Attachment> attachments:null}) { ... }
有2个位置参数和5个可选的命名参数。
您可以像在
中那样简单地传递位置参数new Email(map["to"], map["from"], map);
但是可选的名称参数需要像
一样“命名”new Email(map["to"], map["from"], subject: map);
如果希望可选参数是位置的,则需要将构造函数更改为
Email( List<String> to, String from, [String subject=null, String message=null, DateTime datetime=null, HashMap<String, List<String>> meta=null, List<Attachment> attachments=null]) { ... }
您不能同时拥有可选的命名和可选位置参数。如果您的Email
构造函数中有更长的参数列表,则命名的可选参数通常更好,因为您可以使用名称指定传递的值应分配给哪个参数,并且不需要传递{{1} } s或null
s用于您要跳过的参数。