#flutter
#flutter
Вопрос:
Как я могу передать общий тип в State
из a StatefulWidget
, здесь я хочу использовать свои дженерики в myMethod<T>
class MyWidget<T> extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
@override
Widget build(BuildContext context) {
return Container();
}
myMethod<T>(){
}
}
Ответ №1:
Вы просто указываете тип в своем виджете state full, а затем передаете его вплоть до его состояния:
class MyWidget<T> extends StatefulWidget {
@override
_MyWidgetState<T> createState() => _MyWidgetState<T>();
}
class _MyWidgetState<T> extends State<MyWidget<T>> {
@override
Widget build(BuildContext context) {
return Container();
}
myMethod<T>() {
}
}
Использование:
MyWidget<String>()
Ответ №2:
_MyWidgetState
необходимо расширять State<MyWidget<T>>
не только State<MyWidget>
, а затем вы можете использовать T
внутри _MyWidgetState
Комментарии:
1.
Expected to find '>'.