Make Function parameter optional in custom widget flutter

前端 未结 3 1302
半阙折子戏
半阙折子戏 2021-02-19 15:56

I try to create some custom widget with some parameter in the constructor. This widget has some optional and required parameter. how can make Function type paramete

3条回答
  •  无人及你
    2021-02-19 16:08

    You can use a default value that does nothing:

    class TextInputWithIcon extends StatefulWidget {
      final String iconPath;
      final String placeHolder;
      final Function(bool) onFocusChange;
      const TextInputWithIcon(
          {Key key,
          @required this.iconPath,
          this.placeHolder = "",
          this.onFocusChange = _dummyOnFocusChange})
          : assert(onFocusChange != null), super(key: key);
    
      @override
      _TextInputWithIconState createState() => _TextInputWithIconState();
    
      static dynamic _dummyOnFocusChange(bool val) {}
    }
    

    I created a static named function instead of just a closure as default value, because closures are not const and currently default values need to be const.

    I added the assert(...) to ensure that an error is shown when null is passed explicitly.

提交回复
热议问题