我有以下用于深层链接、动态链接侦听器的代码
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 的监听器,可以吗? 或者如何删除它?
提前致谢...
答案 0 :(得分:2)
所以我不会删除“deepLinkListener”和 AppState 的监听器,可以吗?
这里的一个潜在问题是,如果您多次挂载和卸载组件,您最终可能会遇到多个事件处理程序来处理同一事件。
<块引用>所以我不会删除“deepLinkListener”和 AppState 的监听器,可以吗?
从 docs here 看,onLink
的返回值是监听器的取消订阅方法。
由于您使用的是类组件,因此您必须将该值存储为实例变量。然后您可以检查并调用 componentWillUnmount
上的方法。