Что такое «ключ», который изменяется при каждом изменении маршрута с подключенным реагирующим маршрутизатором? - PullRequest
0 голосов
/ 10 ноября 2018

Когда инициируется действие для навигации по маршруту, действие вызывает новое состояние, в котором router.location.pathname изменяется в соответствии с history.

браузера.

Также изменяется другое свойство: router.location.key, на новую случайную строку.

The diff between two states, showing how key changes alongside a pathname.

Даже если само имя пути не изменяется (если щелкнуть ссылку на страницу на самой странице), key все равно обновляется.

The diff between two states, showing how only the key changes.

Какова цель свойства key? В каких ситуациях я бы хотел, чтобы в моем собственном состоянии был случайно сгенерированный key, который обновляется при самой отправке действия? Почему это не число, которое просто увеличивается?

1 Ответ

0 голосов
/ 11 ноября 2018

connected-react-router просто сохраняет объект местоположения из react-router, который, в свою очередь, создает объект местоположения с использованием пакета history . В файле readme history описано свойство key:

Местоположения также могут иметь следующие свойства:

location.key - уникальная строка, представляющая это местоположение (поддерживается в createBrowserHistory и createMemoryHistory)

Он используется внутри (например, в https://github.com/ReactTraining/history/blob/master/modules/createBrowserHistory.js для поиска местоположений в текущем стеке истории) и должен рассматриваться как деталь реализации react-router. Я подозреваю, что случайный ключ вместо увеличивающегося порядкового номера был просто самым простым способом реализации уникальных идентификаторов (вам не нужно хранить текущий порядковый номер).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...