flutter - 在根小部件中调用多次构建方法
问题描述
当我重新启动我的颤振应用程序时,我的根小部件构建了几次。在我的情况下3次。我认为它应该只在应用重启后构建一次。我也知道,什么时候会根据官方文档调用“构建方法” 。但是官方的原因似乎不适合我的情况。
有人可以解释一下这背后的理论吗,或者它只是发生在我身上
谢谢
void main() => runApp(MainWidget());
class MainWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("main build");
return ChildWidget();
}
}
class ChildWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("child build");
return MaterialApp(
home: Text("test"),
);
}
}
结果
Restarted application in 677ms.
I/flutter ( 3604): main build
I/flutter ( 3604): child build
I/flutter ( 3604): main build
I/flutter ( 3604): child build
I/flutter ( 3604): main build
I/flutter ( 3604): child build
解决方案
最后我想通了这个问题。这是因为 Flutter SDK 版本。我正在使用 SDK ">=2.7.0 <3.0.0"。当我在 pubspec.yaml 文件中将 SDK 版本更改为 ">=2.12.0 <3.0.0" 时,构建只调用一次。
推荐阅读
- ios - 如何让 Swift Playgrounds 在 iPad 上无边界?
- spring-boot - 在 Spring Webflux 中传递 API / 保留后端标头
- android - APK 需要有效的隐私政策和显着披露
- laravel - 如果集合有数据或计数> 0,如何获得 Eloquent 集合?
- ubuntu - 不支持 Ubuntu 终端(Windows 应用程序)跟踪路由协议
- spring - 使用 HazelCast 的 Spring Boot 自定义缓存解析器和缓存管理器
- terraform - 渲染 terraform 模板时会发生什么
- django - django admin 中未显示数据 - 使用 chart.js(无错误)
- postman - 邮递员:成功完成第一个请求后在集合运行器中执行请求
- html - How to remove space above two buttons '+' and '-'?