Flutter StatefulWidget 小部件和泛型

Web*_*ter 15 flutter

我如何将泛型类型传递给Statea 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>(){
    
  }
}
Run Code Online (Sandbox Code Playgroud)

Ped*_*ngo 30

您只需在状态完整小部件中提供类型,然后将其传递到其状态:

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>() {
    
  }
}
Run Code Online (Sandbox Code Playgroud)

用法: MyWidget<String>()


ike*_*fah 9

_MyWidgetStateState<MyWidget<T>>不仅需要扩展State<MyWidget>,然后您可以T在内部使用_MyWidgetState