class - Flutter Stateful Widget 设置构造函数默认值

标签 class flutter dart stateful

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

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),
      );
   }
}
当我将小部件创建为另一个小部件的子部件并包含它完美运行的所有属性时
child: CustomWidget(
   buttonText: 'Text of the button',
   onPressed: () {},
)
但是,当我离开 buttonText 时,应用程序崩溃了。
child: CustomWidget(
   onPressed: () {},
)
一个基本的解决方法是简单地添加行 buttonText: '' .我并不总是想在创建每个自定义小部件的属性时专门解决它。
所以我的问题是,如何在构造函数上设置默认属性?那么当我省略一个属性时,应用程序不会崩溃?

最佳答案

您的构造函数名称应该是类名称。要提供默认值,您只需添加 =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();
}

关于class - Flutter Stateful Widget 设置构造函数默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63872217/

相关文章:

c# - 在没有实例化的情况下访问类中的属性

c++ - 在另一个程序中使用一个程序中的变量

dart - InkWell 无法使用背景图片

flutter - 如何在展开的ListView中设置容器宽度

android - Android依赖项 'com.google.firebase:firebase-iid'对于编译(19.0.0)和运行时(20.0.1)类路径具有不同的版本

dart - 在 Flutter 中,我想在导航到新屏幕后立即调用 for 循环。我把代码放在哪里?

flutter - Flutter Desktop 支持悬停吗?

c++:检查对象数组中类的对象

c++ - 类和子类的通用哈希函数

dart - 如何将future<>分配给flutter中的小部件?