第一次单击时,React-Router后退浏览器按钮不刷新页面

时间:2019-11-29 17:27:21

标签: reactjs react-router

我在首页(/)上,单击登录页面按钮(/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/*)*/));

我在主页的渲染中放置了一些日志,并且在第一次单击“后退”按钮之后,就没有调用主页的渲染(没有日志)。

有些想法?谢谢您的帮助!

0 个答案:

没有答案