Comments (8)
Maybe BrowserHistory and HashHistory should be "children" of MemoryHistory?
from history.
As of right now even MemoryHistory isn't able to pull this off. What we're missing is a way to get the "current" index after a POP
.
from history.
I think we need to track a previous location in go()
and pushState()
calls then pass the previous location to cancelTransition()
call together with location we are on. Something like cancelTransition(previous, current)
.
We are now tracking pendingLocation
in transitionTo()
but I think we can't use it as previous location to cancelTransition()
call because previous
and current
will be always the same.
In the MemoryHistory it doesn't matter because it isn't listening to POP events and can be modified only using the go(), goBack(), goForward(), replaceState() and pushState()
methods. In this case transition will wait for confirmation.
But maybe I am wrong.
from history.
Another question is, what will happen if user won't use window.confirm
but some sort of a modal window that will be nonblocking and pushes back button during a confirmation of previous transition?
- A
- B
- C
- go back
- I am on the C but app is asking me for a confirmation and I push back button again
- I am on B and I confirm previous confirmation and I will be redirected to C?
from history.
Maybe we should not call transitionTo()
if there is any pending transition?
from history.
Im DOM histories we should track previous and current location in onpopstate/hashchange handlers and pushState()
only.
from history.
@mjackson what do you think about this?
from history.
I think we need to track a previous location in go() and pushState() calls
This will not work immediately after a refresh. Imagine the user comes to the site, navigates from A => B => C and then refreshes the page. At that point, we'd like to know that we have a current
value of 2 (assuming a 0-based index).
what will happen if user won't use window.confirm but some sort of a modal window that will be nonblocking and pushes back button during a confirmation of previous transition?
Currently, there is an invariant
that prevents this from happening. However, in the situation you described this obviously isn't ideal. I think the right thing to do in that case would be for the user to detect the second transition, remove the modal, and proceed with the latter transition.
from history.
Related Issues (20)
- Named exports donβt work with Node.js ESM support HOT 1
- Sourcemaps are blank HOT 1
- Use History in redux actions HOT 2
- Location type should have template for unknown for state HOT 3
- doing history.go() does NOT trigger a blocker callback handler HOT 1
- Did TS declaration file disappear for v4? HOT 4
- Wrong action after clicking on Forward button in browser HOT 3
- Need history.BackTo(string)
- Is it possible to access the history bundled into React Router? HOT 1
- globalHistory.pushState function excuted failed in baidu.app
- [v6] Missing hashType={"noslash"} of HashRouter HOT 3
- [react-router-dom v6] HashRouter support HOT 1
- Add index property to BrowserHistory, HashHistory and corresponding Update
- Why `history.length` is gone? HOT 7
- createBrowserHistory() breaks history URL on iOS 11
- history
- is this project abandoned? HOT 2
- Navigate replace without generate new location.key
- hash history url is not parsed correctly with query params
- ReferenceError: document is not defined in Next.JS 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 history.