在history.replact之后刷新

时间:2018-06-18 21:07:13

标签: reactjs react-router

我在index.js中创建了一个requireAuth函数,只允许用户在登录后获取数据。我这样设置:

function requireAuth(nextState, replace) {
    console.log(auth.loggedIn());
    if (!auth.loggedIn()) {
        history.push('/login')
        console.log("NOT LOGGED IN")
    }
}

ReactDOM.render(
<Provider store={store}>
  <HashRouter history={history}>
      <Switch>
          <Route path="/restaurant" name="Restaurant" component={RestrauntDashboard} onEnter={requireAuth()}/>
          <Route path="/" name="Home" component={Home} />
      </Switch>
  </HashRouter>
</Provider>,
document.getElementById('root'));
registerServiceWorker();

但是在注销后,我仍然可以访问我的路径“/ restaurant”,如果我刷新页面,这会将我重定向到'/ login'路径,有人有想法吗?谢谢你的帮助。

我的历史记录是这样设置的:

import { createHashHistory } from 'history';

export const history = createHashHistory({
    forceRefresh: true
})

1 个答案:

答案 0 :(得分:1)

为什么你不使用条件路由,我更喜欢阅读本文关于“Chris Nwamba”,https://scotch.io/tutorials/conditional-routing-with-react-router-v4

的react-router-dom v4中的条件路由