You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
This is probably more of a question than an actual bug. Every change I make to the AppFlowData causes every page that is in the stack to rebuild itself. The problem is that I need for a particular page (the homepage) to show some animations and perform an API call when it first loads, however, when the home page adds another page to the stack or the page added is popped, for example, the homepage is rebuilt, showing the animation again and calling the API once more.
This is not the same behavior as if you are using named routes in the MaterialApp. I want to know if this is the expected behavior and how (if possible) I can get around it.
To Reproduce
Steps to reproduce the behavior:
Create two pages and a FlowBuilder that starts only with one of them
On a button click on the first page, change the FlowData to add the other page to the stack
When you click the button (or pop the second page for that matter) you will realize that the first page was rebuilt.
Expected behavior
I believe the expected behavior should be the same as if you were using Flutter's regular routes system (MaterialRoute with routes property): when a page is added or removed from the stack, the other pages are not rebuilt.
The text was updated successfully, but these errors were encountered:
Ran into the same issue with your reproduction sample. Upon further testing, it seems that when there are multiple pages in the navigation stack, whenever context.flow<FlowState>().update() is called with a change to FlowState all the pages provided in onGeneratePages get rebuilt.
A workaround could be to modify your flow state so that the home page is not included in onGeneratePages after you navigate to a new page. For example, in your flow_navigation reproduction sample you can modify routes.dart accordingly:
onGeneratePages: (state, pages) => [
if (!state.subpage)
MaterialPage<void>( child: Home(),),
if (state.subpage)
MaterialPage<void>( child: Subpage(),),
],
This way, once context.flow<AppFlowData>().update((data) => data.copyWith(subpage: true)) is called Home will not be included in the onGeneratePages list and won't get rebuilt.
I'm able to reproduce this on the onboarding example of this repo @felangel
You can see that if you are in welcome page and navigates to the next, this welcome page will be rebuilt
Describe the bug
This is probably more of a question than an actual bug. Every change I make to the AppFlowData causes every page that is in the stack to rebuild itself. The problem is that I need for a particular page (the homepage) to show some animations and perform an API call when it first loads, however, when the home page adds another page to the stack or the page added is popped, for example, the homepage is rebuilt, showing the animation again and calling the API once more.
This is not the same behavior as if you are using named routes in the MaterialApp. I want to know if this is the expected behavior and how (if possible) I can get around it.
To Reproduce
Steps to reproduce the behavior:
I made an example in this repository.
Expected behavior
I believe the expected behavior should be the same as if you were using Flutter's regular routes system (MaterialRoute with routes property): when a page is added or removed from the stack, the other pages are not rebuilt.
The text was updated successfully, but these errors were encountered: