【发布时间】:2020-03-12 11:53:00
【问题描述】:
第一次打开app,history对象的长度(useHistoryHook返回)是3。
在每次进一步刷新时,长度都会增加。这是为什么?生产中也会发生这种情况吗?
环境:
- create-react-app@3.2.0
- react-router@5.1.2
- react-router-dom@5.1.2
【问题讨论】:
标签: reactjs react-router react-router-dom
第一次打开app,history对象的长度(useHistoryHook返回)是3。
在每次进一步刷新时,长度都会增加。这是为什么?生产中也会发生这种情况吗?
环境:
【问题讨论】:
标签: reactjs react-router react-router-dom
如果您在访问过其他页面的选项卡中导航到该站点,history.length 将 >1。 history.length 是联合会话历史中的位置数,而不是当前站点的会话历史。
即使打开一个新标签并输入您的应用的 url,也意味着 history.length 为 2:空白标签 + 您的 url。如果您通过新窗口/标签上的链接直接到达该页面,则可以得到长度 1。
这可以解释第一次打开您的应用时 >1 的长度。这并不能解释为什么您的应用会在刷新时增加长度,因此它可能与您的特定结构有关。
【讨论】:
- react-router@5.1.2
- react-router-dom@5.1.2
我认为您不需要同时使用 react-router-dom 和 react-router。
仅使用 react-router-dom,因为 react-router-dom 和 react-router-native 使用 react-router 核心
【讨论】:
react-router 的依赖,应用仍然可以正确加载。