【发布时间】:2017-05-18 20:08:08
【问题描述】:
我在 App.js 中设置了路由,它调用一些 Auth 函数来检查 JWT 令牌的验证。所有代码都有效,但是我让我的用户通过了身份验证。当我点击页面时,所有的 onEnter 函数似乎都被触发了。而不仅仅是我实际访问的路线。使用 react-router v3.x.x
console.log 现在返回
'做身份验证'
两次。如果我添加一个新路由并连接 onEnter 函数,它会触发 3 次。移除一个,触发一次。
我完全不知道从哪里开始解决这个问题,所以任何建议都将不胜感激!
class App extends Component {
doAuth(authData) {
console.log('doing auth');
}
render() {
return (
<Router history={browserHistory}>
<Route
path="/"
component={ AuthContainer }
/>
<Route
path="/dashboard"
component={ DashboardContainer }
onEnter={this.doAuth({socket: this.socket, role: ['admin']})}
/>
<Route
path="/digital-sign"
component={ DigitalSignContainer }
onEnter={this.doAuth({socket: this.socket, role: ['admin', 'editor']})}
/>
</Router>
);
}
}
【问题讨论】:
标签: javascript reactjs react-router