Comments (13)
@long1eu yes, fyi resolver. redirect is meant to be used for temp-redirects, I think it's better if you use router.push or router.replace instead, also you should always call resolver.next, in your case it should always be called with resolver.next(false)
from auto_route_library.
@long1eu if you're not navigating by path then inside BookDetailsPage have a constructor param named id and annotate it with @PathParam() so it's automatically parsed for you
from auto_route_library.
Indeed I have something like this:
const BookDetailsPage({@PathParam('id') required this.bookId, super.key});
final String bookId;
my issue here is that the parsing result in this case is :id
.
from auto_route_library.
@long1eu how do you navigate to this page?
from auto_route_library.
It's the initial page.
from auto_route_library.
where are you supposed to get value of 'id' from? deeplink?
from auto_route_library.
I have it inside AppRouter
for List<AutoRoute> get routes
. I also have a AutoRouteGuard
that makes sure the value is selected.
from auto_route_library.
can you share the code inside AutoRouteGuard?
from auto_route_library.
class BookSelectedGuard implements AutoRouteGuard {
BookSelectedGuard(this.store);
final Store<AppState> store;
@override
void onNavigation(NavigationResolver resolver, StackRouter router) {
final String? bookId = store.state.bookId;
if (bookId != null) {
resolver.redirect(BookDetailsPage(bookId: bookId));
} else {
resolver.redirect(SelectBookRoute(onResult: resolver.next));
}
}
}
from auto_route_library.
this BookDetailsPage
should be BookDetailsRoute
right?
in the below line you are resuming the initial destination with id=null when calling resolver.next;
resolver.redirect(SelectBookRoute(onResult: resolver.next));
you need to always abort with resolver.next(false); inside on result obtain the book id then re-push BookDetailsRoute with the it
from auto_route_library.
Something like this?
class BookSelectedGuard implements AutoRouteGuard {
BookSelectedGuard(this.store);
final Store<AppState> store;
@override
void onNavigation(NavigationResolver resolver, StackRouter router) {
final String? bookId = store.state.books.selectedBookId;
if (bookId != null) {
resolver.redirect(BookDetailsRoute(bookId: bookId));
} else {
resolver.redirect(
SelectBookRoute(
onResult: (String? bookId) {
resolver.next(false);
if (bookId != null) {
resolver.redirect(BookDetailsRoute(bookId: bookId));
}
},
),
);
}
}
}
from auto_route_library.
I've send you an email at [email protected]
from auto_route_library.
@long1eu resend on [email protected] please
from auto_route_library.
Related Issues (20)
- Flutter analyze breaks when using context.router.pop HOT 5
- [Web] Redirection cannot be made with the web back button. HOT 3
- Error: Superclass has no getter named 'popDisposition' | The method 'PopScope' isn't defined for the class 'AutoRouteNavigatorState' HOT 7
- [Web] / [Need help] Navigate with URL should build the full stack HOT 2
- When I navigate back I get ERROR! HOT 1
- popForced and popUntilRoot is broken after 7.8.4 HOT 5
- PopScope and WillPopScope doesn't work in Flutter Web when I want to back by browser's back button HOT 1
- commit 45e643a74b13746e77bb12b8cc14f19fe03b95f3 breaks Readme.md formatting
- [Help] Setting default route parameters? Error: RouteArgs can not be null because the corresponding page has a required parameter HOT 1
- Version solving failed on auto_route: ^8.0.0 and auto_route_generator: ^7.3.2 HOT 1
- Navigating back with iOS gesture doesn't go back to the previous page HOT 3
- How to scope a Same and Specific Bloc to some of the Routes using Auto Route? HOT 2
- Bloc Provider Duplicating issue using Sub router HOT 10
- AutoTabsRouterTabBarState was disposed with active Ticker HOT 2
- customRouteBuilder's completion result type has broken in the 8.0.3 version HOT 6
- Wildcards explanation is wrong HOT 2
- Allow empty paths without making them initial? HOT 4
- Missing Back Button after refresh on web HOT 9
- Issue with Global Constants as Default Values in Route Generation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from auto_route_library.