Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React router 3.x.x将触发所有OneNet';s在<;路由器>;同时_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript React router 3.x.x将触发所有OneNet';s在<;路由器>;同时

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

我在App.js中设置了路由,它调用一些Auth函数来检查JWT令牌的验证。所有的代码都是有效的,但是我让我的用户通过了身份验证。。我一进入页面,所有的onEnter函数似乎都启动了。而不仅仅是我实际访问的路线。使用react路由器v3.x.x

console.log现在返回

“正在进行授权”

两次。如果我添加一个新路由并连接onEnter函数,它会触发三次。移除一个,开火一次

我完全不知道从哪里开始修复这个问题,所以任何建议都将不胜感激

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脚本中调试它。再次感谢!