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正在运行,但它不会为该特定路径提供反应组件。