我应该取消订阅这个听众吗



我有以下用于深度链接、动态链接侦听器的代码

class App extends Component {
public async componentDidMount() {
AppState.addEventListener("change", this.handleAppStateChange);
Linking.addEventListener("url", deepLinkHandler);
const deepLinkListener = firebase.dynamicLinks().onLink(this.handleListener);
}
public componentWillUnmount() {
Linking.removeEventListener("url", deepLinkHandler);
}

所以我不会因为";deepLinkListener";和AppState,可以吗?或者如何移除它?

提前感谢。。。

所以我不会删除"的侦听器;deepLinkListener";和AppState,可以吗?

这里的一个潜在问题是,如果多次装载和卸载组件,可能会导致多个事件处理程序处理同一事件。

所以我不会删除";deepLinkListener";和AppState,可以吗?

从这里的文档来看,onLink的返回值似乎是侦听器的取消订阅方法。

由于您使用的是类组件,因此必须将该值存储为实例变量。然后,您可以在componentWillUnmount上检查并调用该方法。

最新更新