React Router Dom不通过HTML的pushState方法监听对路由所做的更改

时间:2017-06-12 20:59:56

标签: javascript reactjs react-router

React Router Dom没有监听HTML的pushState方法对路由所做的更改。因此,不应该为那些路线渲染组件。非常重要的是我可以完全控制路线。

它有预先用例。我有这样的历史堆栈 -

['/home', '/about', '/status', '/info']

现在'/ info'路线有一个按钮,表示回到家并返回状态。单击这些按钮后,我应该返回到pushStates的历史记录,而不是在pushState堆栈中再推送一个状态。

我最好的方法是从npm安装'history'模块,因为它有几个很好的功能。在内部,它仅使用HTML5的pushState。但是使用react-router,它无法正常工作。使用此历史记录模块更改pushState不会呈现React组件。

请帮我解决这个问题。任何解决方案或替代方案都会受到欢迎。

编辑:

我的App.js渲染了这个:

<Provider store={store}>
    <div>
      <Router>
        <div>
          <Route path="/intro/jm" component={IntroJm} />
          <Route path="/intro/nfc" component={IntroNfc} />
          <Route path="/intro/txn" component={IntroTxn} />
        </div>
      </Router>
    </div>
  </Provider>

我正在努力做到以下几点:

window.history.pushState({},"JM-Intro","/intro/jm");

这没有发生。实际上在我的反应应用程序中没有以任何可能的方式推送状态。我也试过使用npm的'history'模块。该模块及其apis正在运行,但它不会为该特定路径提供反应组件。

0 个答案:

没有答案