我试图理解在颤动中创建自己的小部件的最佳风格,这里有两个非常简单的例子
使用底部的代码,我可以使用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
)
}
}
我不知道实际的guildelines,但我更喜欢类似的东西
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})
默认值或需要某个值
PS这一切都不是准则 - 它只是一个恕我直言