如下代码,我在root上使用onEnter 来判断用户是否已登录然后进行相应的跳转,跳转到主界面,或者登陆界面。但是这个地方会导致Maximum call stack size exceeded。
<Router history={browserHistory}> <Route path='/' component={Main} onEnter={requireAuth}> <Route path='login' component={Login} /> </Route></Router>requireAuth(nextState,replace,callback){ if(isLogined) { replace('/home'); } else { replace('/login'); } callback(); }
原因,主要是每次都会调用onEnter直到爆栈,解决方法可以通过在相应需要验证的route上添加onEnter进行验证。但这种需要每次添加感觉代码会不简洁,想知道有没有只在一个地方添加onEnter或者有什么更好的处理方法来避免重复添加onEnter的问题?
炎炎设计
相关分类