У меня есть следующий код для глубокой ссылки, динамического прослушивателя ссылок

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, это нормально? или как его убрать?

Заранее спасибо...

1
manuelBetancurt 3 Май 2021 в 02:57

1 ответ

Лучший ответ

так что я не удаляю слушателя для "deepLinkListener" и AppState, это нормально?

Одна потенциальная проблема здесь заключается в том, что вы можете получить несколько обработчиков событий, обрабатывающих одно и то же событие, если вы несколько раз монтируете и размонтируете свой компонент.

так что я не удаляю слушателя для "deepLinkListener" и AppState, это нормально?

Из rel == документы здесь, похоже, что возвращаемое значение onLink - это метод отказа от подписки для слушателя.

Поскольку вы используете компоненты класса, вам придется сохранить это значение как переменную экземпляра. Затем вы можете проверить и вызвать метод на componentWillUnmount.

2
nipuna777 3 Май 2021 в 00:43