У меня есть несколько настраиваемых виджетов, которые принимают один и тот же тип данных в качестве параметра:
class Widget1 extends StatelessWidget {
Widget1({@required this.data});
final data;
}
class Widget2 extends StatelessWidget {
Widget2({@required this.data});
final data;
}
...
У меня есть еще один виджет, который действует как менеджер виджетов:
class WidgetManager extends StatelessWidget {
final data;
final type;
WidgetManager({this.data, this.type});
@override
Widget build(BuildContext context) {
if (this.type == 'Widget1') {
return Widget1(data: this.data);
} elseif (this.type == 'Widget2') {
return Widget2(data: this.data);
}
}
}
In PHP Я мог бы вызвать виджеты с помощью такой строки:
$widget_name = 'Widget1';
$widget = new $widget_name($data);
Есть ли способ сделать подобное во флаттере? Как return this.type(data: this.data);
?