我有一个位于特定路线的组件:

<Route path='/route-path' component={MyComponent} />


在这个组件中,我所有的firestore侦听器都在componentDidMount中创建,如下所示:

componentDidMount() {
   var unsubscribe = db.collection(name)
       .where("query", "==", false)
       .onSnapshot((querySnapshot) => {
          // do something
       })
}


如果路由发生更改,是否有必要取消订阅该侦听器?就像是:

componentWillUnmount() {
  unsusbscribe() // from componentDidMount
}


还是通过路由更改自动处理此问题,即websocket关闭了连接?

最佳答案

Firestore SDK不具备有关ReactJS和/或其生命周期事件的隐式知识。

您需要取消订阅自己的代码。它不会自动完成。

10-05 18:40