我在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
})
答案 0 :(得分:1)
为什么你不使用条件路由,我更喜欢阅读本文关于“Chris Nwamba”,https://scotch.io/tutorials/conditional-routing-with-react-router-v4
的react-router-dom v4中的条件路由