在componentWillUnmount中需要取消订阅Firestore / React

时间:2018-04-17 02:03:40

标签: javascript reactjs firebase react-router google-cloud-firestore

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

<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关闭连接?

1 个答案:

答案 0 :(得分:1)

Firestore SDK没有关于ReactJS和/或其生命周期事件的隐含知识。

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