javascript - react-router 在使用onEnter 时遇到了Maximum call stack size exceeded
怪我咯
怪我咯 2017-04-11 13:15:46
0
1
349

如下代码,我在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的问题?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
Ty80

我每次遇到Maximum call stack size exceeded都是因为死循环,多写几个console.log,看看哪里在死循环

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!