alibaba / alibaba/flutter_boost
[Bug]: 单个页面生命周期监听产生问题
- Dominant language
- Dart
- Stars
- 7.2k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
### 请描述遇到的问题,以及您所期望的正确的结果
当单个页面监听生命周期的时候,例如
@override
void onPageShow() {
super.onPageShow();
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
// 注册页面可见性监听器
PageVisibilityBinding.instance
.addObserver(this, ModalRoute.of(context) as Route);
}
添加 PageVisibilityBinding.instance
.addObserver(this, ModalRoute.of(context) as Route)后 ,当前页面进行 showDialog navigator等开启页面或者弹窗的时候,会触发当前页面build方法刷新,关闭dialog 或者 页面返回的时候也会触发build. 触发了不必要的刷新。 试过去掉了 PageVisibilityBinding.instance
.addObserver(this, ModalRoute.of(context) as Route); 就不会刷新。
### 请说明如何操作会遇到上述问题
_No response_
### 在下面填入关键复现代码
```
```
### 复现的平台
Both
### Flutter SDK版本
3.22.3
### FlutterBoost版本
5.0.1
### 是否延迟初始化FlutterBoost
No
### 解决方案
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the issue around PageVisibilityBinding.instance.addObserver(this, ModalRoute.of(context) as Route) with showDialog and navigator actions on Flutter SDK 3.22.3 and FlutterBoost 5.0.1. Compare build callbacks when the observer is registered and removed; done means opening and closing dialogs or pages no longer causes unnecessary builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100