Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: bool isFlutterPage(String name) 优化 #2122

Open
niegaotao opened this issue Aug 23, 2024 · 0 comments
Open

[Bug]: bool isFlutterPage(String name) 优化 #2122

niegaotao opened this issue Aug 23, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@niegaotao
Copy link

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

  1. 当前处于一个flutter页面【Flutter page 1】,
  2. 点击跳转下一个flutter页面【Flutter page 2】
    BoostNavigator.instance.push("record/detail", arguments: {}, withContainer: true, opaque: true)
  1. 这个时候会发现FlutterBoostApp的routeFactory被调用了两遍, 第一遍是isFlutterPage(name)中触发的调用--用于查找页面是不是flutter页面;第二遍是打开页面的时候调用的。针对第一遍的调用可以做些优化,即在FlutterBoostApp初始化的时候让开发者传入全部flutter页面的路由List,那么
FlutterBoostApp(List<String> routeNames, ....) {
     BoostNavigator.instance. routeNames = routeNames;
}

bool isFlutterPage(String name)  {
 List<String>? routeNames = BoostNavigator.instance. routeNames;
 if(routeNames != null && routeNames.isNotEmpty){
    return routeNames.contains(name);
 }
 //兼容原有的模式
 return routeFactory(RouteSettings(name: name), null) != null;
}

如此可以减少一次routeFactory的调用,从而减少不必要的Route的初始化。

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

每次都会遇到。

在下面填入关键复现代码

    BoostNavigator.instance.push("record/detail", arguments: {}, withContainer: true, opaque: true)

复现的平台

Both

Flutter SDK版本

3.22.3

FlutterBoost版本

4.6.2

是否延迟初始化FlutterBoost

No

解决方案

如上。

@joechan-cq joechan-cq added the enhancement New feature or request label Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants