我有一个JavaScript应用程序,该应用程序使用onSnapshot侦听器侦听Firebase集合中的更改。当我不再需要侦听器时,文档告诉我取消订阅。在React中,我会在componentWillUnmount()
中进行此操作,但是如果我将侦听器设置为普通类(不是React),那么在这种情况下我将如何退订?
我如何实现它...
class MyComponent extends React.Component {
constructor() {
super();
this.presenter = new MyPresenter();
}
...rest of component
class MyPresenter {
constructor() {
const listener = db.collection("cities")
.onSnapshot(function () {});
}
}
答案 0 :(得分:2)
在我看来,您只想在MyPresenter
上创建一个称为“ stop()”或类似方法的方法,即可取消订阅。然后,在您的组件中,在其presenter.stop()
期间调用componentWillUnmount()
。