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:需要重现你的案例。你能提供复制代码并发布到新问题吗。谢谢