为什么更改路由会触发.info / connected onDisconnect()?

时间:2019-04-18 19:42:04

标签: reactjs firebase firebase-realtime-database jsx

当检查其他路由的身份验证状态时,为什么React Router会断开当前的Firebase AuthUser?

当我在路线(家庭,帐户等)之间切换时,会调用onDisconnect()函数,并且状态会在几秒钟内从连接状态变为断开状态再回到连接状态。

路线:

      this.listener = this.props.firebase.onAuthUserListener(
        authUser => {
            this.setState({ authUser });

            var myConnectionsRef = this.props.firebase.db.ref('users/'+authUser.uid+'/connected')

            var connectedRef = this.props.firebase.db.ref('.info/connected');

            connectedRef.on('value', function(snap) {
              console.log(snap.val())
              if(snap.val() === true){
                  myConnectionsRef.onDisconnect().set(false).then(() => {
                  myConnectionsRef.set(true);
                })
              }
            });    
        });

验证用户监听器:

page.$$

1 个答案:

答案 0 :(得分:0)

看来我已经解决了我的问题。

我正在使用React Boostrap Navbar组件,其中包括以下标记:

<Nav.Link>

我用它代替了React Router标签:

<Link>

为了保持我以前的样式,只需包装一个标签,如下所示:

  <Nav.Link>
       <Link to={ROUTES.DEFAULT_SETTINGS}> Settings </Link>
  </Nav.Link>

...已修复在更改样式的同时保持样式的同时失去连接的问题。

因为:

<Nav.Link href={ROUTES.DEFAULT_SETTINGS}> Settings </Nav.Link>

不能正确更改路由,而是刷新页面,是否有更适当的做法来显示Bootstrap链接?

相关问题