4

I am developing a Flutter app for iOS, Android, and Web. I decided to use the GetX package because it makes things much easier, but I am stumped on how to handle Web URL/address bar navigation. For example, one of my screens shows details about an event. Navigating there through the app works fine, but what if I paste in a link to the event in the browser? My GetX EventController manages a _selectedEvent event which is how I know which event to display the details for. However, if I use a URL link, my _selectedEvent event is never updated and the details screen won't show the correct event.

Currently I set _selectedEvent in my homepage when the user clicks on the event to navigate to the details screen. However, if the user navigates through the address bar in a browser, I cannot update _selectedEvent. I don't think I can use any of the state managers in GetX because I am not updating widgets, so I am not sure where to update my _selectedEvent.

How should I handle address bar navigation?

Hopefully my explanation makes sense. I am still trying to learn Flutter.

Walker Sorlie
  • 53
  • 1
  • 1
  • 7

2 Answers2

4

Try using GetX named routes with dynamic URL links as described here. For example, you could have a URL like 'https://.../events?id=1234' for a specific event, you can obtain the ID with Get.parameters['id'] in your controller and show the event details based on this id.

Interact
  • 86
  • 5
0

So I found a somewhat solution if anyone else stumbles onto this question. This link has a good, easy-to-follow description and implementation of routing and navigating with Flutter. It doesn't use GetX specifically to do routing, but I just used GetPageRoute instead of MaterialPageRoute and GetX navigation instead of the Flutter Navigator to still benefit from GetX controllers and bindings. I still have problems with the browser back button, but I think that is a Flutter problem, no a problem of my specific project.

Walker Sorlie
  • 53
  • 1
  • 1
  • 7