gpt4 book ai didi

flutter - 为什么在 flutter 中调用 Navigator.of(context).pushNamed(..) 时会构建两次小部件?

转载 作者:IT王子 更新时间:2023-10-29 06:44:31 28 4
gpt4 key购买 nike

下面类 TestWidget 中的 build 函数在执行导航代码时被调用两次。 Test Widget 在控制台上打印了两次。
有谁知道为什么会这样?

 class TestWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("Test Widget");
return new Scaffold(body: new Text("TEST WIDGET"),);
}
}

导航代码:

   Navigator.of(context).pushNamed(AppRoutes.fieldData);`

路线定义:

  AppRoutes.fieldData: (context) {
return new TestWidget();
},

最佳答案

这是因为动画。

当一条路线被拖入页面内容时,构建一个渲染的面部以进行动画处理,然后,当它就位时,它会再次重建。

你可以清楚地看到它在你的构建函数中放置了一个调试中断并尝试导航到这样的路线:当路线即将进入时它会首先停止 - 但仍然不可见 - ;然后当它安顿下来时。

关于flutter - 为什么在 flutter 中调用 Navigator.of(context).pushNamed(..) 时会构建两次小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48311520/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com