J'ai la liste suivante que j'essaie de réorganiser/ classer par DateTime.
import 'package:intl/intl.dart';
//n'oubliez pas d'ajouter sous les dépendances pubspec.yml "intl: ^0.15.8"
Liste de produits = [];
//ajout dans la nouvelle liste à partir de la liste API brute
for (final article in produitsBruts){
var dateAnalysee = DateTime.parse.(article['dateExpiration']);
tmpArray = {
'id': article['id'],
'nom': article['nom'],
'prix': article['prix'],
'expiration': dateAnalysee
}
produits.add(tmpArray);
}
}
Liste de produits = [
{id: 1242, nom: lait, prix: $5, expiration: 2019-11-25 00:00:00:000},
{id: 1242, nom: œuf, prix: $2, expiration: 2019-11-22 00:00:00:000},
{id: 1243, nom: pain, prix: $3, expiration: 2019-11-22 00:00:00:000},
{id: 1244, nom: beurre, prix: $7, expiration: 2019-11-24 00:00:00:000},
{id: 1247, nom: beurre, prix: $7, expiration: 2019-11-23 00:00:00:000},
]
Je souhaite réorganiser la liste de sorte que la date d'expiration la plus éloignée apparaisse en premier :
25-11-2019
24-11-2019
23-11-2019
22-11-2019
22-11-2019
Ce que j'ai essayé (mis à jour) -> RÉSOLU en changeant a.expiry
en a['expiration']
:
produits.sort((a,b) {
var adate = a['expiration'] //avant -> var adate = a.expiry;
var bdate = b['expiration'] //var bdate = b.expiry;
return -adate.compareTo(bdate);
});
avec la fonction de tri je reçois cette erreur (RÉSOLU par la correction ci-dessus) :
Unhandled Exception: NoSuchMethodError: Class
'_InternalLinkedHashMap' n'a pas de getter d'instance 'expiration'.