Reputation: 587
I am using this model:
class ElementTask {
final String name;
final bool isDone;
ElementTask(this.name, this.isDone);
}
Now I want to add:
final int frequency;
But then I get this error in my other class:
3 positional argument(s) expected, but 2 found. Try adding the missing arguments.
I am using this code:
getExpenseItems(AsyncSnapshot<QuerySnapshot> snapshot) {
List<ElementTask> listElement = [];
int nbIsDone = 0;
if (widget.user.uid.isNotEmpty) {
// ignore: missing_return
snapshot.data.documents.map<Column>((f) {
if (f.documentID == widget.currentList.keys.elementAt(widget.i)) {
f.data.forEach((a, b) { //<--error here**
if (b.runtimeType == bool) {
listElement.add(ElementTask(a, b));
}
});
}
}).toList();
for (var i in listElement) {
if (i.isDone) {
nbIsDone++;
}
}
What can I do to solve it? Should I add a c or something else?
Upvotes: 0
Views: 800
Reputation: 6077
I got this exception when I did not put coma between arguments:
Logger.log('Main', 'onBackgroundEvent' 'notifications initialized');
(There is a coma expected between onBackgroundEvent
and notifications initialized
)
Upvotes: -1
Reputation: 63569
If you like to make frequency
optional, make it nullable. and use named argument.
class ElementTask {
final String name;
final bool isDone;
final int? frequency;
ElementTask(this.name, this.isDone,{this.frequency});
}
If you like to have it required, you need to pass three item.
More about constructors
Upvotes: 1