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

Deep links in dynamic route parameters don't work on cold launch or if the app is not in memory. #3087

Closed
ettaegbe opened this issue May 1, 2024 · 3 comments
Assignees

Comments

@ettaegbe
Copy link

ettaegbe commented May 1, 2024

When navigating to a route like "/posts/:postId" the app crashes if it wasn't initially in memory. Normal links like /create-post work perfectly okay. If we use something "/post?&postId=1" it also works. Below is the stack trace of the error.

Null check operator used on a null value
I/flutter (31105): #0      ParseRouteTree._parseParams (package:get/get_navigation/src/root/parse_route.dart:173)
I/flutter (31105): #1      ParseRouteTree.matchRoute (package:get/get_navigation/src/root/parse_route.dart:64)
I/flutter (31105): #2      PageRedirect.needRecheck (package:get/get_navigation/src/routes/route_middleware.dart:258)
I/flutter (31105): #3      PageRedirect.page (package:get/get_navigation/src/routes/route_middleware.dart:199)
I/flutter (31105): #4      GetMaterialApp.generator (package:get/get_navigation/src/root/get_material_app.dart:340)
I/flutter (31105): #5      _WidgetsAppState._onGenerateRoute (package:flutter/src/widgets/app.dart:1482)
I/flutter (31105): #6      NavigatorState._routeNamed (package:flutter/src/widgets/navigator.dart:4447)
I/flutter (31105): #7      Navigator.defaultGenerateInitialRoutes (package:flutter/src/widgets/navigator.dart:2802)
I/flutter (31105): #8      NavigatorState.restoreState (package:flutter/src/widgets/navigator.dart:3647)
I/flutter (31105): #9      RestorationMixin._doRestore (package:flutter/src/widgets/restoration.dart:924)
I/flutter (31105): #10     RestorationMixin.didChangeDependencies (package:flutter/src/widgets/restoration.dart:910)
I/flutter (31105): #11     NavigatorState.didChangeDependencies (package:flutter/src/widgets/navigator.dart:3694)
I/flutter (31105): #12     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5629)
I/flutter (31105): #13     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456)
I/flutter (31105): #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #15     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
I/flutter (31105): #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505)
I/flutter (31105): #17     Element.rebuild (package:flutter/src/widgets/framework.dart:5196)
I/flutter (31105): #18     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5462)
I/flutter (31105): #19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456)
I/flutter (31105): #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #21     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
I/flutter (31105): #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6758)
I/flutter (31105): #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #24     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
I/flutter (31105): #25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505)
I/flutter (31105): #26     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5643)
I/flutter (31105): #27     Element.rebuild (package:flutter/src/widgets/framework.dart:5196)
I/flutter (31105): #28     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5462)
I/flutter (31105): #29     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5634)
I/flutter (31105): #30     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456)
I/flutter (31105): #31     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #32     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
I/flutter (31105): #33     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505)
I/flutter (31105): #34     Element.rebuild (package:flutter/src/widgets/framework.dart:5196)
I/flutter (31105): #35     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5462)
I/flutter (31105): #36     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456)
I/flutter (31105): #37     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #38     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
I/flutter (31105): #39     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505)
I/flutter (31105): #40     Element.rebuild (package:flutter/src/widgets/framework.dart:5196)
I/flutter (31105): #41     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5462)
I/flutter (31105): #42     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456)
I/flutter (31105): #43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #44     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
I/flutter (31105): #45     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505)
I/flutter (31105): #46     Element.rebuild (package:flutter/src/widgets/framework.dart:5196)
I/flutter (31105): #47     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5462)
I/flutter (31105): #48     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456)
I/flutter (31105): #49     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #50     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
I/flutter (31105): #51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5505)
I/flutter (31105): #52     Element.rebuild (package:flutter/src/widgets/framework.dart:5196)
I/flutter (31105): #53     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5462)
I/flutter (31105): #54     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5456)
I/flutter (31105): #55     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4335)
I/flutter (31105): #56     Element.updateChild (package:flutter/src/widgets/framework.dart:3846)
@nandakista
Copy link

Hello @ettaegbe, I have same issue in my old projects
after spending a lot of time I found two the solutions that you can choose

  1. Make sure the initialRoute name is '/'
    or
  2. When the deeplink came from cold start, its always open the '/' as initial route and if your initial route name is not '/', getx throw to the unknown route property so you must set unknownRoute in the GetMaterialApp
See the code hereScreenshot 2024-03-02 at 21 04 32

Hope this help you

@nandakista
Copy link

To many question about this issue
Hope this will be fixed in current version or next getx 5 version
@jonataslaw

@ettaegbe
Copy link
Author

ettaegbe commented May 2, 2024

@nandakista it was fixed in the last merge. It's not just published. I wish he could now because trying to pull from the git commit is impossible. #3067

@ettaegbe ettaegbe closed this as completed May 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants