我尝试创建了一个自定义的有状态小部件。但我无法找到如何在构造函数中设置默认值的参考。
例如:
class CustomWidget extends StatefulWidget {
final String buttonText;
final Function onPressed;
CustomWidget({Key key, @required this.onPressed, this.buttonText}) : super(key: key);
@override
_CustomWidgetState createState() => _CustomWidgetState();
}
class _CustomWidgetState extends State<CustomWidget> {
@override
Widget build(BuildContext context) {
return FlatButton(
onPressed: widget.onPressed,
child: Text(widget.buttonText),
);
}
}
当我将widget创建为另一个widget的子级并包括所有属性时,它可以完美运行。
child: CustomWidget(
buttonText: 'Text of the button',
onPressed: () {},
)
不过,如果我不包含buttonText,应用程序就会崩溃。
child: CustomWidget(
onPressed: () {},
)
一个基本的解决方法是简单地添加这行代码:
buttonText: ''
。我并不总是想在创建自定义部件时明确指定每个属性。我的问题是:如何在构造函数上设置默认属性,以便当我省略一个属性时,应用程序不会崩溃?