I know that
pushReplacementNamed takes the name of the route and passes it with the route settings to the
onGenerateRoute with that name and pushes on the
Navigator the page returned by that function, and I know that
pushReplacement takes the page route directly as an argument, but what I am asking about is when should I use one instead of the other, is there a specific use case of each one or is it just a matter of preference?
It’s a matter of preference, but I prefer the
pushReplacementNamed one. The main difference is the one you have already mentioned – the
pushReplacementNamed goes through the
onGenerateRoute callback and then returns the next route. This way it is easier to separate the navigation logic and keep it in a separate file. All your routes could be defined under
onGenerateRoute method, your UI code is not tightly coupled with specific pages – you can just simply pass the route name. And that’s also the reason why
pushReplacementNamed contains the
arguments parameter – since the next route does not know where it was called from, you can pass the needed data using the parameter.
Answered By – mkobuolys
Answer Checked By – Mildred Charles (FlutterFixes Admin)