我正在尝试理解在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
)
}
}
答案 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。所有这些都不是准则-只是恕我直言