Open2

StatefulWidgetのState側から親Widgetのプロパティを参照する

みなみみなみ

サンプル

State<T extend StatefulWidget> の T に与えるStatefulWidget に定義したプロパティに、State側からアクセスするには widget プロパティを利用します。

class HogeWidget extends StatefulWidget {

  HogeWidget({
     this.hogeString,
  });

  String? hogeString;

  
  _HogeWidget createState() => _HogeWidget();

}

class _HogeWidget extends State<HogeWidget> {
  
  Widget build(BuildContext context) {
    /// widget.xxx で参照できる
    print(widget.hogeString);

    return Container();
  }
}
みなみみなみ

State の実装


abstract class State<T extends StatefulWidget> with Diagnosticable {
  /// The current configuration.
  ///
  /// A [State] object's configuration is the corresponding [StatefulWidget]
  /// instance. This property is initialized by the framework before calling
  /// [initState]. If the parent updates this location in the tree to a new
  /// widget with the same [runtimeType] and [Widget.key] as the current
  /// configuration, the framework will update this property to refer to the new
  /// widget and then call [didUpdateWidget], passing the old configuration as
  /// an argument.
  T get widget => _widget!;
  T? _widget;

...省略

上記のようになっており、
Stateの型として与えた StatefulWidget と同じ型の参照を widget で取得できるようになっている