Javascript React router 3.x.x将触发所有OneNet';s在<;路由器>;同时
我在App.js中设置了路由,它调用一些Auth函数来检查JWT令牌的验证。所有的代码都是有效的,但是我让我的用户通过了身份验证。。我一进入页面,所有的onEnter函数似乎都启动了。而不仅仅是我实际访问的路线。使用react路由器v3.x.x console.log现在返回 “正在进行授权” 两次。如果我添加一个新路由并连接onEnter函数,它会触发三次。移除一个,开火一次 我完全不知道从哪里开始修复这个问题,所以任何建议都将不胜感激Javascript React router 3.x.x将触发所有OneNet';s在<;路由器>;同时,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我在App.js中设置了路由,它调用一些Auth函数来检查JWT令牌的验证。所有的代码都是有效的,但是我让我的用户通过了身份验证。。我一进入页面,所有的onEnter函数似乎都启动了。而不仅仅是我实际访问的路线。使用react路由器v3.x.x console.log现在返回 “正在进行授权” 两次。如果我添加一个新路由并连接onEnter函数,它会触发三次。移除一个,开火一次 我完全不知道从哪里开始修复这个问题,所以任何建议都将不胜感激 class App extends Component
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>
);
}
}
类应用程序扩展组件{
doAuth(authData){
log('doing auth');
}
render(){
返回(
);
}
}
路由器触发所有onEnter
,因为它需要传递回调,而不是回调结果值
例如,以这种方式:
onEnter={()=>this.doAuth({socket:this.socket,role:['admin']})}
谢谢您。多年来,我一直试图在我的auth脚本中调试它。再次感谢!