我将 true
传递给小部件以计算按钮的边框半径。出于某种原因,round
作为 null
传递,下一个简化代码中的三元返回 25。我做错了什么?
CustomButton(
height: 60.0,
round: true,
);
class CustomButton extends StatelessWidget {
CustomButton({
@required this.height,
this.round,
});
final height;
final round;
@override
Widget build(context) {
return CustomElevation(
child: RawMaterialButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(round == true ? height / 2 : 25),
),
),
),
);
}
}
答案 0 :(得分:0)
CustomButton(
height: 60.0,
round: true,
);
<块引用>
首先,round == true 和 round 完全一样。接下来,您可能应该向圆形变量添加一个“bool”注释。然后还要意识到如果该小部件被重建,我不确定 round 是否保持其价值,除非您将其置于有状态小部件的状态 (mention)
<块引用>第二,尝试使用 null-type safe,这样可以防止可空性
<块引用>第三,如果一个参数请求double值,使用double值,而不是整数
class CustomButton extends StatelessWidget {
CustomButton({
@required this.height,
this.round,
});
final double height;
final bool round;
@override
Widget build(context) {
return CustomElevation(
child: RawMaterialButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular((round ?? false) ? height / 2.0 : 25.0),
),
),
),
);
}
}