go_navigator 1.0.1 go_navigator: ^1.0.1 copied to clipboard
A comprehensive Flutter Navigation System that provides a set of utilities for managing routes, passing arguments, and navigating through your application with ease.
GoNavigator - 1.0.1 #
A Flutter plugin providing advanced navigation utilities for managing routes and the navigation stack in a Flutter application.
Features #
- Navigate to specified routes with optional arguments.
- Clear all previous routes from the stack.
- Replace the current route with a named route.
- Pop until a specific route is reached.
- Navigate back to the previous screen with provided data.
- And more!
Changes in Version 1.0.1 #
Removed #
GoArgs
for more clarity and consistency.
Usage #
This plugin offers a utility class Go(context).to()
that simplifies navigation in a Flutter app. It provides methods for navigating to specific routes, managing the route stack, and passing data between screens.
Here's an overview of some key methods available in the Go(context).to()
class:
toAndExpectData<T>()
#
Navigates to a named route and expects to receive data back. It waits for the specified route to return data and returns the result obtained from the navigated route.
Future<T?> toAndExpectData<T>() async {
// Implementation...
}
-
Enhancement: Added support for nested routes in the
GoNavigator
class.-
Updated the
generateRoute
method to recursively handle nested routes. -
Allowed the route map to include both leaf routes (directly associated with widget constructors) and nested routes (associated with nested maps).
-
-
Breaking Change: The
routes
property now expects a map where the values can be either a widget constructor or a nested map of routes.onGenerateRoute: (RouteSettings routeSettings) => GoNavigator( initialRoute: const Page1(), routes: { '/home': { 'Page4': (context, args) => const Page4(), 'Page5': (context, args) => const Page5(), }, Page2.routeName: (context, args) => const Page2(), Page3.routeName: (context, args) => const Page3(), }, ).generateRoute(routeSettings),
-
Bug Fix: Resolved the type error issue related to the return type of nested route builders.
- Ensured proper handling of both leaf routes and nested routes, making sure the returned value is a valid widget constructor.
-
Documentation: Updated inline comments for better code readability and understanding.
-
Deprecation: Removed unnecessary null check for
initialRoute
as it is already checked in the constructor. -
Validation: Enforced that the
routes
map must not be empty. An exception is thrown if theroutes
map is empty. -
Error Handling: Improved error messages to provide clearer information about the issues related to route definitions.
-
Version Compatibility: Compatible with Flutter version X.X.X.
Version 1.0.1 (Original Implementation)
-
Feature: Introduced the
GoNavigator
class for building and managing routes in a Flutter application. -
Basic Routing: Supported basic routing with an initial route and a map of named routes associated with widget constructors.
-
Error Handling: Threw an exception if the
routes
map was empty, ensuring that a valid route configuration is provided. -
Documentation: Included inline comments for method explanations and usage.
-
Version Compatibility: Compatible with Flutter version 4.0.0
These methods simplify navigation tasks and provide an easy way to manage route navigation in your Flutter app.
Getting Started #
To use this navigation system in your Flutter app:
- Add the
go_navigator
plugin to yourpubspec.yaml
file. - Import the package into your Dart code.
- Create an instance of the
Go<T>
class and use its methods for navigation tasks.
For detailed implementation and usage instructions, refer to the code documentation and examples provided.
Platform Support #
This plugin is available on Android, iOS, MacOS, and Windows.
For more detailed instructions on how to use and implement this plugin, refer to Flutter's documentation.