创建自己的Flutter小部件最佳实践

时间:2018-11-09 19:45:08

标签: dart flutter

我正在尝试理解在Flutter中创建自己的小部件的最佳样式,这是2个非常简化的示例

使用底部的代码,我可以使用1)

new SomeWidget("Some title", someFunction);

或2)

SomeWidget.widget("Some title", someFunction);

或3)我不知道的其他方式

方法1)感觉更正确(如果我没有犯一些错误),但是方法2)实际上具有较少的代码(因为我不需要更早地声明对象变量,假设我不需要访问上下文),但我对静态方法保持警惕。

1)是首选,为什么?

class SomeWidget extends StatelesssWidget {

  String title;
  Function callback;

  SomeWidget( this.title, this.callback );

  //method 1
  Widget build(context) {
    return GestureDetector(
      onTap: callback,
      child: ....some widget
    )
  }

  //method 2
  static Widget widget(String title, Function callback) {
    return GestureDetector(
      onTap: callback,
      child: ....some widget
    )
  }

}

1 个答案:

答案 0 :(得分:3)

我不知道实际情况,但是我更喜欢类似

class SomeWidget extends StatelesssWidget {

  SomeWidget({this.title, this.callback});

  final String title;
  final VoidCallback callback;

  Widget build(context) {
    return GestureDetector(
      onTap: callback,
      child: ....some widget
    );
  }
}

或者您可以这样做

SomeWidget({this.title = '', @required this.callback})

获取默认值或需要某些值

P.S。所有这些都不是准则-只是恕我直言