flutter_boost icon indicating copy to clipboard operation
flutter_boost copied to clipboard

[Bug]: A容器内开启1,2两个flutter页面,跳转到B容器开启flutter页面3,然后需要要关闭A容器内的2页面,会直接变成关闭A容器。

Open fdh19979 opened this issue 1 year ago • 4 comments

请描述遇到的问题,以及您所期望的正确的结果

有个业务场景,在A-activity内用withContainer=false的方式,开启了两个flutter页面1和2,然后跳转到原生B-activity执行业务,然后再跳转C-activity内开启flutter页面3,这时候需要关闭前面的flutter页面2,使用pop(uniqueId)方式会直接关闭A-activity,也就同时关闭了flutter页面1和2。

看了一下flutter_boost的dart内的源代码是判断container != topContainer的时候直接_removeContainer,而不是remove这个container内的指定page。

请问一下,这个是BUG,还是特意设计如此呢?后续是否会对这个判断进行优化?

请说明如何操作会遇到上述问题

No response

在下面填入关键复现代码

Future pop( {String? uniqueId, Object? result, bool onBackPressed = false}) async { if (topContainer == null) return false; BoostContainer? container; if (uniqueId != null) { container = _findContainerByUniqueId(uniqueId); if (container == null) { Logger.error('uniqueId=$uniqueId not found'); return false; } if (container != topContainer) { _completePendingResultIfNeeded(container.pageInfo.uniqueId, result: result); await _removeContainer(container); return true; } } else { container = topContainer; }

复现的平台

Both

Flutter SDK版本

3.22.2

FlutterBoost版本

5.0.2

是否延迟初始化FlutterBoost

Yes

解决方案

fdh19979 avatar Aug 01 '24 08:08 fdh19979

@fdh19979 目前的boost暂不支持根据uniqueId删除内部路由flutter页面,后续会考虑加入这个功能,敬请期待。

imcjj avatar Aug 01 '24 11:08 imcjj

@imcjj 如果暂时不支持,我们修改代码实现了这个功能,支持merge pull requests 吗?

fdh19979 avatar Aug 02 '24 06:08 fdh19979

@fdh19979 欢迎提交代码,这边会对PR进行Review

imcjj avatar Aug 02 '24 07:08 imcjj

你会出现 C - B -A 依次返回 导致A容器Flutter页面渲染不出的问题吗

sorrybeman avatar Sep 25 '25 08:09 sorrybeman