【问题标题】:React Chrome Extension - React Router v4 doesn't receive URL change events from page contentReact Chrome 扩展 - React Router v4 不接收来自页面内容的 URL 更改事件
【发布时间】:2017-10-29 15:03:43
【问题描述】:

我有一个 React 应用程序,我设法用content_scripts 将它推入了一个 chrome 扩展程序。它基本上是页面上的叠加层,根据路线显示上下文相关的工具。问题是现有页面内容链接不会导致我的扩展中的 react-router 在单击它们时更新其历史记录。因此,当用户使用实际的网站链接更改页面时,我的应用程序不会显示正确的工具。只有当他们在正确的路线上点击刷新时。

当用户点击现有页面内容上的链接时,有没有办法让 react-router 知道并更新它的历史记录?

【问题讨论】:

  • 不确定react-router 是否会在这里为您服务。监听 url 变化怎么样? stackoverflow.com/questions/34957319/…
  • 这对于 react-app 之外的用例似乎没问题,但我不确定如何使用此事件侦听器来指示我的扩展中的 react-router 进行更新。但也许这是进一步探索的好方向
  • 您可以使用 chrome.webNavigation.onHistoryStateUpdated 和 .onReferenceFragmentUpdated 检测后台页面中的页内导航,然后向您的内容脚本应用发送消息。
  • 这看起来可能是答案。您能否将其作为问题的答案提交,当我有机会实施它时,如果可行,我会将其标记为已解决?

标签: javascript reactjs google-chrome-extension react-router react-router-v4


【解决方案1】:

也许您可以尝试使用“hashchange”事件侦听器监听 url 更改,然后推送 url 更改以使用 browserHistory.push('/some/path') 响应路由器。

【讨论】:

  • 我相信 hashchange 只是当您在带有# 的网址之后进行更改时?没有?
猜你喜欢
  • 2023-01-12
  • 2018-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 2017-08-20
  • 2018-12-09
  • 1970-01-01
相关资源
最近更新 更多