我是 flutter 新手,无法对 List 进行排序并获取“此表达式的类型为“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"]));
}
Run Code Online (Sandbox Code Playgroud)
我想对包含来自 az 的零食名称的“零食”进行排序,反之亦然
我已经尝试过了,但仍然不起作用
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();
});
}
Run Code Online (Sandbox Code Playgroud)
该错误显示“无法在初始化程序中访问实例成员“getSnack”。”
Sort()将其排序应用于列表,它不返回任何值(void)。你应该写的是:
getSnack.sort((a, b) => a["snack"].compareTo(b["snack"]));
var sortSnack = getSnack;
Run Code Online (Sandbox Code Playgroud)
或者如果你想在一行上使用级联运算符:
var sortSnack = getSnack..sort((a, b) => a["snack"].compareTo(b["snack"]));
Run Code Online (Sandbox Code Playgroud)
请注意,在这两种情况下,sortSnack 都将是 getSnack 的浅表副本。SortSnack 中的任何更改都会反映在 getSnack 中。
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |