I want to make the code a bit more concise. Which one is better? Does using StatelessWidget affect performance?
If there is only one place to use this widget, which one to use?
class WebViewPopupMenu extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PopupMenuButton(
itemBuilder: (context) => <PopupMenuItem<int>>[
_buildItem(0, 'Refresh', Icons.refresh),
WebViewPopupMenuItem(1, 'Favourite', Icons.favorite_border)
],
);
}
/// 1 used Function
_buildItem(value, text, iconData) {
return PopupMenuItem<int>(
value: value,
child: Row(
children: <Widget>[
Icon(
iconData,
size: 20,
),
Text(text)
],
),
);
}
}
/// 2 used StatelessWidget
class WebViewPopupMenuItem<T> extends StatelessWidget {
final T value;
final IconData iconData;
final String text;
WebViewPopupMenuItem(this.value, this.iconData, this.text);
@override
Widget build(BuildContext context) {
return PopupMenuItem<T>(
value: value,
child: Row(
children: <Widget>[
Icon(iconData,size: 20),
Text(text)
],
),
);
}
}
Here is the code