我在首页(/
)上,单击登录页面按钮(/login
)时,反应路由器遇到问题,我显示了登录页面,正常...,然后单击浏览器后退按钮,没有任何反应,它不会转到首页,但是浏览器中的URL是首页之一(/
)。然后,我在浏览器中单击前进按钮,最后得到的是主页,但带有登录页面的URL(/ login)。
代码如下:
在index.js中
// Create browser history to use in the Redux store
const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');
const history = createBrowserHistory({ basename: baseUrl });
// Get the application-wide store instance, prepopulating with state from the server where available.
const initialState = window.initialReduxState;
const store = configureStore(history, initialState);
const rootElement = document.getElementById('root');
ReactDOM.render(
<Provider store={store}>
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
</Provider>,
rootElement);
registerServiceWorker();
在app.js中
render(){
return (
<Layout>
<Switch>
<Route exact path='/' component={Home} />
<Route path='/login' component={Login} />
<Route path='/logout' component={Logout} />
</Switch>
</Layout>
)
}
在NavMenu.js中:
this.props.history.push("/login")
...
export default connect(
state => state,
dispatch => bindActionCreators(actionCreators, dispatch)
)(withRouter(/*withStyles(styles)(*/NavMenu/*)*/));
我在主页的渲染中放置了一些日志,并且在第一次单击“后退”按钮之后,就没有调用主页的渲染(没有日志)。
有些想法?谢谢您的帮助!