我是个新手,我无法对列表进行排序,无法得到“此表达式有一种类型的'void‘,因此它的值无法使用。”错误
List getSnack = [];
var sortSnack = [];
Future _getSnacks() async {
var response = await http.get(Uri.parse(url));
List decode = jsonDecode(response.body);
setState(() {
getSnack = decode
.where((snack) => snack["snack_type"]
.toLowerCase()
.contains(defaultType.toLowerCase()))
.toList();
});
sortSnack = getSnack.sort((a, b) => a["snack"].compareTo(b["snack"]));
}我想把含有零食名称的“零食”从and分类,反之亦然。
我试过了,但还是不起作用
List getSnack = [];
var sortSnack = getSnack.sort((a, b) => a["snack"].compareTo(b["snack"]));;
Future _getSnacks() async {
var response = await http.get(Uri.parse(url));
List decode = jsonDecode(response.body);
// List filter = decode;
setState(() {
getSnack = decode
.where((snack) => snack["snack_type"]
.toLowerCase()
.contains(defaultType.toLowerCase()))
.toList();
});
}错误说“实例成员'getSnack‘不能在初始化器中访问。”
发布于 2022-03-26 14:22:48
排序()将其排序应用于列表,它不会返回任何值(无效)。你应该写的是:
getSnack.sort((a, b) => a["snack"].compareTo(b["snack"]));
var sortSnack = getSnack; 或者使用级联操作符,如果您想在一行上这样做的话:
var sortSnack = getSnack..sort((a, b) => a["snack"].compareTo(b["snack"]));请注意,在这两种情况下,sortSnack都是getSnack的浅表副本。SortSnack中的任何变化都将反映在getSnack中。
https://stackoverflow.com/questions/71628390
复制相似问题