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的build 方法时,navigatorKeyFinal 变量的值都会发生变化,但 navigatorKeyLocal 变量保持不变。谁能解释我这种行为的原因?

4

0 回答 0