Android 为什么当我返回到我的原始页面时,构建会再次运行?

Android 为什么当我返回到我的原始页面时,构建会再次运行?,android,flutter,navigation,arguments,Android,Flutter,Navigation,Arguments,当我使用 Navigator.pushNamed(context, 'namePage', arguments: varHello); 在我名为namePage的页面中,我得到了如下参数: @override Widget build(BuildContext context) { final aux = ModalRoute.of(context).settings.arguments; } 为什么当我返回到原始页面时,会再次发送namePage构建来调用? 例如,

当我使用

Navigator.pushNamed(context, 'namePage', arguments: varHello);
在我名为namePage的页面中,我得到了如下参数:

  @override
  Widget build(BuildContext context) {   
   final aux = ModalRoute.of(context).settings.arguments;
  }
为什么当我返回到原始页面时,会再次发送namePage构建来调用? 例如,如果我在构建中添加打印

  @override
  Widget build(BuildContext context) {  
   print("hello world"); 
   final aux = ModalRoute.of(context).settings.arguments;
  }
当我转到控制台上的namePage页面时,打印“hello world”


但是,当我返回到上一页(在那里我发送了调用名称页)时,控制台再次打印来自Flutter团队回复的“hello world”


导航器堆栈上的页面在推送新页面时重建

这是工作的预期。一般来说,您应该假设所有小部件都可以在任何时候重建,而它们不能,这只是一种优化


特别是,路线将重建,因为它们的导航器状态已更改,因此它们可能需要更新其缩回按钮等的方式。

您知道如何消除此影响吗?因为我在第二页初始化时调用了一个API,但是当我弹出这个页面时,我再次调用了这个API,我不想这样做。D:需要重现你的案例。你能提供复制代码并发布到新问题吗。谢谢