触发用于导航到路线的操作时,该操作会触发一个新状态,其中router.location.pathname
会根据浏览器的history
进行更改。
另一个属性也发生了变化:router.location.key
更改为新的随机字符串。
即使路径名本身没有改变(单击页面本身上指向页面的链接),key
仍会更新。
key
属性的用途是什么?在哪种情况下,我希望自己的状态有一个随机生成的key
,它会根据动作分派进行更新?为什么它不是简单增加的数字?
答案 0 :(得分:1)
connected-react-router
仅存储react-router
中的位置对象,然后使用history包创建位置对象。在history
的自述文件中,描述了key
属性:
位置可能还具有以下属性:
location.key-代表此位置的唯一字符串(受以下版本支持 createBrowserHistory和createMemoryHistory)
它在内部使用(例如,在https://github.com/ReactTraining/history/blob/master/modules/createBrowserHistory.js中用于查找当前历史记录堆栈中的位置),应将其视为react-router
的实现细节。我怀疑使用随机密钥而不是递增序列号只是实现唯一ID的最简单方法(您不必存储当前序列号)。