'Flutter Sort list by 3 properties

I have a List with some properties and I would like two sort all of them by three properties. In my list I have number, number2, date and some other properties. When I click on number list sort by number ASC, when I click again on number list sort DESC by number. When I click again on number, do not sort by number. Same for number2 and date. But When I click on number and then on number2, sort by both fields. Same for date

I tried like this but does not work for me.

All fields are ASC order

reports.sort((a, b) => <Comparator<Reports>>[
                    (o1, o2) => o1.number.compareTo(o2.number),
                    (o1, o2) => o1.number2.compareTo(o2.number2),
                    (o1, o2) => o1.date.compareTo(o2.date),
                  ].map((e) => e(a, b)).firstWhere((e) => e != 0, orElse: () => 0));

Number field is DASC order other are ASC order

reports.sort((a, b) => <Comparator<Reports>>[
                    (o1, o2) => o2.number.compareTo(o1.number),
                    (o1, o2) => o1.number2.compareTo(o2.number2),
                    (o1, o2) => o1.date.compareTo(o2.date),
                  ].map((e) => e(a, b)).firstWhere((e) => e != 0, orElse: () => 0));

Tried like this but does not work. If anyone have idea please help.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source