Error: A value of type 'Iterable<Transaction>' can't be returned from a function with return type 'List<Transaction>?'. showing this error
The where
function in Dart return you an Iterable<T>
and not a List<T>
.
But since you have the return type of your function as List<Transaction>
, you have to convert the Iterable<Transaction>
that you are getting from the where
function.
For this use the, toList
function on the Iterable
.
List<Transaction>? get _recentTransactions { return _userTransactions.where((tx) { assert(tx != null); return tx.date.isAfter(DateTime.now().subtract(Duration(days: 7),),); }).toList(); }
Make a list by .toList
List<Transaction> get _recentTransactions { return _userTransactions.where((tx) { return tx.date.isAfter(DateTime.now().subtract(Duration(days: 7),),); }).toList(); }
I had a similar issue with Iterable<String>
A value of type 'Iterable<String?>' can't be returned from a function with return type 'Iterable'. I used .cast like that
customerNames.where((String? option) { return option! .toLowerCase() .contains(textEditingValue.text.toLowerCase()); }).cast()