Giter VIP home page Giter VIP logo

Comments (12)

devmuaz avatar devmuaz commented on August 15, 2024 1

@Milad-Akarie issue has been fixed, it was as you mentioned above my mistake somewhere in the code and after digging deeper, found out that the page is getting rebuilt causing it to push the page multiple times.

My mistake is that I was doing it in the UI, the solution was to move the logic somewhere safe in business logic where UI builds has no effect in there!

Thanks for bringing that in mind!

from auto_route_library.

devmuaz avatar devmuaz commented on August 15, 2024

The issue has been resolved, it turned out that there's a property that keeps the history alive (called keepHistory, and this defaults to true), and disabling it solves the whole thing!

here's the updated AppRouter class:

@AutoRouterConfig(
  replaceInRouteName: 'View,Route',
)
class AppRouter extends _$AppRouter {
  @override
  List<AutoRoute> get routes => [
        AutoRoute(page: SplashRoute.page, path: '/business/:id', initial: true),
        AutoRoute(page: BusinessRoute.page, keepHistory: false),
        AutoRoute(page: MainRoute.page),
      ];
}

final appRouter = AppRouter();

@Milad-Akarie It would be beneficial if this is documented in the README.md file 🔥

Thanks!

from auto_route_library.

Milad-Akarie avatar Milad-Akarie commented on August 15, 2024

@devmuaz hold on, what page are trying to deep-link to? the SplashRoute? is there a mistake here?

from auto_route_library.

devmuaz avatar devmuaz commented on August 15, 2024

@Milad-Akarie Trying to deep-link the BusinessRoute, but need the id in the SplashRoute

from auto_route_library.

Milad-Akarie avatar Milad-Akarie commented on August 15, 2024

Business route has no path so how are you supposed to deep-link to it?

from auto_route_library.

devmuaz avatar devmuaz commented on August 15, 2024

Yes, that's why I'm using the SplashRoute as a deep-link destination because I need the id in the splash first, then I'm doing it programmatically pushing the BusinessRoute with that id came from the splash

from auto_route_library.

Milad-Akarie avatar Milad-Akarie commented on August 15, 2024

@devmuaz so you're the one pushing the page again and again into the stack, maybe try navigate instead of push, or just keep in your mind that setting keepHistory to false the business route will never stay in stack if you push a another page above it.

from auto_route_library.

devmuaz avatar devmuaz commented on August 15, 2024

Yeah, I tried calling this from the SplashRoute:

appRouter.navigate(BusinessRoute(id: id));

but still, the route is getting called multiple times

from auto_route_library.

Milad-Akarie avatar Milad-Akarie commented on August 15, 2024

have you tried with rebuildStackOnDeepLink: false?
in general if you're not doing in thing inside of your splash screen, ( just branding and then redirecting ) you should consider using a native splash screen

from auto_route_library.

devmuaz avatar devmuaz commented on August 15, 2024

Hmm lemme try setting it to false.

Actually, the splash route has many functionalities inside and the whole app depends on this route before the app gets started and the deep-link id is one of them.

from auto_route_library.

devmuaz avatar devmuaz commented on August 15, 2024

@Milad-Akarie Nah, still the same! I even tried to write a Guard to that route to prevent the duplication, but never worked tho!

from auto_route_library.

devmuaz avatar devmuaz commented on August 15, 2024

Yes, unfortunately, the keepHistory indeed removes the route once a new route gets pushed above it!

from auto_route_library.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.