What is the “key” which changes on every route change with connected-react-router?
up vote
0
down vote
favorite
When an action for navigating to a route is triggered, an action triggers a new state where the router.location.pathname
changes according to the browser's history
.
Another property changes as well: router.location.key
, to a new random string.
Even when the pathname itself doesn't change (clicking on a link to a page from the page itself), the key
still updates.
What's the purpose of the key
property? In which situations would I want my own state to have a randomly generated key
which updates on very action dispatch? Why is it not a number which simply increments?
redux react-router-v4 connected-react-router
add a comment |
up vote
0
down vote
favorite
When an action for navigating to a route is triggered, an action triggers a new state where the router.location.pathname
changes according to the browser's history
.
Another property changes as well: router.location.key
, to a new random string.
Even when the pathname itself doesn't change (clicking on a link to a page from the page itself), the key
still updates.
What's the purpose of the key
property? In which situations would I want my own state to have a randomly generated key
which updates on very action dispatch? Why is it not a number which simply increments?
redux react-router-v4 connected-react-router
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
When an action for navigating to a route is triggered, an action triggers a new state where the router.location.pathname
changes according to the browser's history
.
Another property changes as well: router.location.key
, to a new random string.
Even when the pathname itself doesn't change (clicking on a link to a page from the page itself), the key
still updates.
What's the purpose of the key
property? In which situations would I want my own state to have a randomly generated key
which updates on very action dispatch? Why is it not a number which simply increments?
redux react-router-v4 connected-react-router
When an action for navigating to a route is triggered, an action triggers a new state where the router.location.pathname
changes according to the browser's history
.
Another property changes as well: router.location.key
, to a new random string.
Even when the pathname itself doesn't change (clicking on a link to a page from the page itself), the key
still updates.
What's the purpose of the key
property? In which situations would I want my own state to have a randomly generated key
which updates on very action dispatch? Why is it not a number which simply increments?
redux react-router-v4 connected-react-router
redux react-router-v4 connected-react-router
asked 2 days ago
Lazar Ljubenović
8,34512451
8,34512451
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
connected-react-router
simply stores the location object from react-router
which in turn creates the location object using the history package. In the readme of history
the key
property is described:
Locations may also have the following properties:
location.key - A unique string representing this location (supported in
createBrowserHistory and createMemoryHistory)
It is used internally (e.g. in https://github.com/ReactTraining/history/blob/master/modules/createBrowserHistory.js to find locations in the current history stack) and should be treated as an implementation detail of react-router
. I suspect a random key instead of a incrementing sequence number was simply the easiest way to implement unique ids (you don't have to store the current sequence number).
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
connected-react-router
simply stores the location object from react-router
which in turn creates the location object using the history package. In the readme of history
the key
property is described:
Locations may also have the following properties:
location.key - A unique string representing this location (supported in
createBrowserHistory and createMemoryHistory)
It is used internally (e.g. in https://github.com/ReactTraining/history/blob/master/modules/createBrowserHistory.js to find locations in the current history stack) and should be treated as an implementation detail of react-router
. I suspect a random key instead of a incrementing sequence number was simply the easiest way to implement unique ids (you don't have to store the current sequence number).
add a comment |
up vote
1
down vote
accepted
connected-react-router
simply stores the location object from react-router
which in turn creates the location object using the history package. In the readme of history
the key
property is described:
Locations may also have the following properties:
location.key - A unique string representing this location (supported in
createBrowserHistory and createMemoryHistory)
It is used internally (e.g. in https://github.com/ReactTraining/history/blob/master/modules/createBrowserHistory.js to find locations in the current history stack) and should be treated as an implementation detail of react-router
. I suspect a random key instead of a incrementing sequence number was simply the easiest way to implement unique ids (you don't have to store the current sequence number).
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
connected-react-router
simply stores the location object from react-router
which in turn creates the location object using the history package. In the readme of history
the key
property is described:
Locations may also have the following properties:
location.key - A unique string representing this location (supported in
createBrowserHistory and createMemoryHistory)
It is used internally (e.g. in https://github.com/ReactTraining/history/blob/master/modules/createBrowserHistory.js to find locations in the current history stack) and should be treated as an implementation detail of react-router
. I suspect a random key instead of a incrementing sequence number was simply the easiest way to implement unique ids (you don't have to store the current sequence number).
connected-react-router
simply stores the location object from react-router
which in turn creates the location object using the history package. In the readme of history
the key
property is described:
Locations may also have the following properties:
location.key - A unique string representing this location (supported in
createBrowserHistory and createMemoryHistory)
It is used internally (e.g. in https://github.com/ReactTraining/history/blob/master/modules/createBrowserHistory.js to find locations in the current history stack) and should be treated as an implementation detail of react-router
. I suspect a random key instead of a incrementing sequence number was simply the easiest way to implement unique ids (you don't have to store the current sequence number).
answered yesterday
Johannes Reuter
1,82979
1,82979
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53237729%2fwhat-is-the-key-which-changes-on-every-route-change-with-connected-react-route%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password