Flutter 为什么当我 return 到我的原始页面时构建再次运行?
Flutter why when I return to my original page the build runs again?
为什么当我使用
调用另一个页面时出现抖动
Navigator.pushNamed(context, 'namePage', arguments: varHello);
在我名为 namePage 的页面中,我得到的参数 varHello 是这样的:
@override
Widget build(BuildContext context) {
final aux = ModalRoute.of(context).settings.arguments;
}
为什么当我回到原来的页面时,namePage build 又被发送来调用?
例如,如果我将 print 放入 build
@override
Widget build(BuildContext context) {
print("hello world");
final aux = ModalRoute.of(context).settings.arguments;
}
当我转到控制台上的 namePage 页面时打印“hello world”
但是当我回到上一页(我发送调用名称页面的地方)时,控制台再次打印“hello world”
来自 Flutter 团队的回复。
Pages on Navigator stack rebuild when a new page is pushed
https://github.com/flutter/flutter/issues/11655#issuecomment-348287396
这是按预期工作的。一般来说,您应该假设所有小部件都可以随时重建,而它们不会重建主要只是一种优化。
特别是,路线将重建,因为它们的导航器状态已更改,因此它们可能需要更新它们撤回按钮等的方式。
为什么当我使用
调用另一个页面时出现抖动Navigator.pushNamed(context, 'namePage', arguments: varHello);
在我名为 namePage 的页面中,我得到的参数 varHello 是这样的:
@override
Widget build(BuildContext context) {
final aux = ModalRoute.of(context).settings.arguments;
}
为什么当我回到原来的页面时,namePage build 又被发送来调用? 例如,如果我将 print 放入 build
@override
Widget build(BuildContext context) {
print("hello world");
final aux = ModalRoute.of(context).settings.arguments;
}
当我转到控制台上的 namePage 页面时打印“hello world”
但是当我回到上一页(我发送调用名称页面的地方)时,控制台再次打印“hello world”
来自 Flutter 团队的回复。
Pages on Navigator stack rebuild when a new page is pushed
https://github.com/flutter/flutter/issues/11655#issuecomment-348287396
这是按预期工作的。一般来说,您应该假设所有小部件都可以随时重建,而它们不会重建主要只是一种优化。
特别是,路线将重建,因为它们的导航器状态已更改,因此它们可能需要更新它们撤回按钮等的方式。