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
で取得できるようになっている