我已经意识到可以使用普通函数创建小部件而不是子类化StatelessWidget.一个例子是这样的:
Widget function({ String title, VoidCallback callback }) {
return GestureDetector(
onTap: callback,
child: // some widget
);
}
Run Code Online (Sandbox Code Playgroud)
这很有趣,因为它需要的代码远远少于完整的类.例:
class SomeWidget extends StatelessWidget {
final VoidCallback callback;
final String title;
const SomeWidget({Key key, this.callback, this.title}) : super(key: key);
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: callback,
child: // some widget
);
}
}
Run Code Online (Sandbox Code Playgroud)
所以我一直在想:除了创建小部件的函数和类之间的语法之外还有什么区别吗?使用函数是一个好习惯吗?