This repository was archived by the owner on Oct 26, 2018. It is now read-only.
Fix issue when initial location redirects#289
Merged
timdorr merged 2 commits intoreactjs:masterfrom Feb 18, 2016
Merged
Conversation
|
Hit the same problem. Thanks for creating this PR! |
|
Thanks for this @decafdennis! For those who need a workaround until this fix is released, you can use the asynchronous callback: -function requireAuth(nextState, replace) {
+function requireAuth(nextState, replace, callback) {
if (!isAuthenticated()) {
replace({
pathname: '/login',
state: {
nextPathname: nextState.location.pathname
}
});
}
+
+ setTimeout(callback, 0); // TODO: Remove this once https://github.com/reactjs/react-router-redux/pull/289 is released
} |
Contributor
Author
|
Thanks for the workaround @btmills! I also published |
Member
|
Interesting! Thanks for writing a solid test case for this too. |
timdorr
added a commit
that referenced
this pull request
Feb 18, 2016
Fix issue when initial location redirects
|
Awesome! Will there be a new version for this? |
Member
|
Yeah, I'll do a quick rc2 tonight. |
|
Thanks @timdorr! 👍 |
Contributor
Author
|
@timdorr: thanks for the quick merge! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We've been using the cutting edge version in a new project, and all work that went into v4 is much appreciated!
Today we found a bug: if the initial route redirects to another location, then the
Routercomponent doesn't update properly and leaves the user with an empty page. It's common to useonEnteron aRouteto redirect the user to a login page when she is not logged. Thesyncs history -> components when the initial route gets replacedtest in this PR replicates the problem.The problem lies in the
syncHistoryWithStore's custom listening logic. It makes the first synchronous call to each listener before it subscribes to the store changes, so if the listener causes a location change and thus a store change (e.g. when a location redirects), then the listener is not notified of that change. This PR fixes the problem by subscribing to the store before making the first call to the listener.Hopefully this bug can be fixed before the final v4 is released!