alibaba / alibaba/flutter_boost

[Bug]: 单个页面生命周期监听产生问题

Open
#2,221 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.