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
My react web application navigates to an external site on clicking a button. On the external site, if I click the back button in the browser, I get redirected back to my react application. Now:
in an incognito window, the react application maintains the state that was set before redirecting.
in a non-incognito window, the react application "resets" its state to the default state.
Note: I am unable to recreate this inconsistency locally (i.e. via running the react app with npm run start). I have only observed this in a production-ized build in an incognito window.
Minimum Reproducible Example
I have prepared a minimal example that does the following:
Click button on page to get redirected
Clicking the button toggles a state variable to true, which re-renders the page to hide the button and show "redirecting" text instead
After waiting 3 seconds, redirect to external page (example.com) via window.location.href
Behaviour in incognito window:
Here, the page maintains the state before navigation, and the state variable maintains value true Screencast from 2024-05-07 15-22-10.webm
Chrome (inconsistency exists between incognito window and non-incognito window)
Firefox (inconsistency exists between private window and non-private window)
Safari (inconsistency exists between private window and non-private window)
React version: 17.0.2
Steps To Reproduce
As mentioned earlier, I have only been able to recreate the inconsistency in a production-ized build of my react application. I have deployed my minimal reproducible example via Netlify, the URL is: https://master--animated-lily-d6cfcf.netlify.app/
Alternately, you may deploy a version of the application yourself (see links to code example)
Open productionized react app in incognito window
Click button "click to redirect", this sets the state variable value from V1 to V2
Navigate to external website
Click back button in browser on external website
On return to react app, the state variable will maintain value V2
Description
My react web application navigates to an external site on clicking a button. On the external site, if I click the back button in the browser, I get redirected back to my react application. Now:
Note: I am unable to recreate this inconsistency locally (i.e. via running the react app with
npm run start
). I have only observed this in a production-ized build in an incognito window.Minimum Reproducible Example
I have prepared a minimal example that does the following:
true
, which re-renders the page to hide the button and show "redirecting" text insteadwindow.location.href
Behaviour in non-incognito window:
Here, the page gets reset and the state variable has its default value of
false
Screencast from 2024-05-07 15-19-54.webm
Behaviour in incognito window:
Here, the page maintains the state before navigation, and the state variable maintains value
true
Screencast from 2024-05-07 15-22-10.webm
Application code:
Browsers I have tried recreating this on:
React version: 17.0.2
Steps To Reproduce
As mentioned earlier, I have only been able to recreate the inconsistency in a production-ized build of my react application. I have deployed my minimal reproducible example via Netlify, the URL is: https://master--animated-lily-d6cfcf.netlify.app/
Alternately, you may deploy a version of the application yourself (see links to code example)
V1
toV2
V2
Link to code example:
Production-ized build: https://master--animated-lily-d6cfcf.netlify.app/
Source code: https://github.com/pranay1208/ext_nav_min
The current behavior
In incognito mode, app maintains the state it had before navigation
In non-incognito mode, app resets to default state
The expected behavior
Consistent behaviour in incognito and non-incognito windows; i.e. either state resets on back navigation, or state is maintained on back navigation
The text was updated successfully, but these errors were encountered: