1

次のコード スニペットを検討してください。

class CustomStateFulWidget extends StatefulWidget {
  final GlobalKey<NavigatorState> navigatorKeyFinal =  GlobalKey();

  @override
  _CustomStateFulWidget createState() => _CustomStateFulWidget();
}

class _CustomStateFulWidget extends State<CustomStateFulWidget> {
  GlobalKey<NavigatorState> navigatorKeyLocal = GlobalKey();

  @override
  Widget build(BuildContext context) {
    print("Navigator key local: ${navigatorKeyLocal.hashCode}");
    print("Navigator key final: ${widget.navigatorKeyFinal.hashCode}");

    return Center();
  }
}

上記のコードでは、 _CustomStateFulWidgetのビルド メソッドが呼び出されるたびに、navigatorKeyFinal 変数の値が変更されますが、navigatorKeyLocal 変数は変更されません。誰でもこの動作の理由を説明できますか?

4

0 に答える 0