如何在GroupButton的onSelected/onTap回调中使用switch case语句
解决方案
你遇到的报错不是因为onSelected回调不能用switch case,是两处语法错误导致的:
- 第一处是Dart函数语法使用错误
你现在写的(index, isSelected) => { ... }写法不符合Dart语法规范:Dart中=>箭头函数仅用于返回单行表达式,如果你要执行多行逻辑代码块,不需要加=>,直接在参数后接大括号即可。你的写法会被Dart识别为要返回一个Map对象,在Map结构中写if、switch这类语句自然会触发语法错误,和你有没有遗漏花括号无关。 - 第二处是switch语句参数缺失
你当前的switch ()括号内没有填写要判断的变量,case后也没有填写要匹配的常量值,补全对应逻辑即可。
修正后的代码示例:
return GroupButton( spacing: 5, isRadio: true, direction: Axis.horizontal, onSelected: (index, isSelected) { if(true){ // 你的原有if逻辑 } switch (index) { case 0: // 选中第1个按钮的逻辑 break; case 1: // 选中第2个按钮的逻辑 break; default: // 其他情况的逻辑 } }, // 剩余的GroupButton配置项 );
内容的提问来源于stack exchange,提问作者Scoopex
相关产品推荐
相关产品推荐

