Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 颤振有状态小部件设置构造函数默认值_Class_Flutter_Dart_Stateful - Fatal编程技术网

Class 颤振有状态小部件设置构造函数默认值

Class 颤振有状态小部件设置构造函数默认值,class,flutter,dart,stateful,Class,Flutter,Dart,Stateful,我试图创建一个自定义的有状态小部件。但是我找不到关于如何在构造函数上设置默认值的任何参考 class CustomWidget extends StatefulWidget { final String buttonText; final Function onPressed; CustomWidget ({Key key, @required this.onPressed, this.buttonText = 'defaultString'}) :super(key: ke

我试图创建一个自定义的有状态小部件。但是我找不到关于如何在构造函数上设置默认值的任何参考

class CustomWidget extends StatefulWidget {
   final String buttonText;
   final Function onPressed;

   CustomWidget ({Key key, @required this.onPressed, this.buttonText = 'defaultString'}) :super(key: key);//this.buttonText='defaultString'

   @override
   _CustomWidgetState createState() => _CustomWidgetState();
}
例如:

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),
      );
   }
}
然而,当我不使用buttonText时,应用程序崩溃

child: CustomWidget(
   onPressed: () {},
)
一个基本的解决方法是简单地添加一行
按钮文本:'
。在创建自定义小部件时,我并不总是想明确地处理每个自定义小部件的属性


所以我的问题是,如何设置构造函数的默认属性?因此,当我省略属性时,应用程序不会崩溃?

您的构造函数名称应该是类名。要提供默认值,只需在构造函数中的变量旁边添加一个
=defaultValue

class CustomWidget extends StatefulWidget {
   final String buttonText;
   final Function onPressed;

   CustomWidget ({Key key, @required this.onPressed, this.buttonText = 'defaultString'}) :super(key: key);//this.buttonText='defaultString'

   @override
   _CustomWidgetState createState() => _CustomWidgetState();
}