Глубокие ссылки в реакции - Цикл на точке входа, URL, кажется, кешируется - PullRequest
0 голосов
/ 19 мая 2019

У меня есть свой проект на native-нативе, и я пытаюсь использовать глубокие ссылки для определенного потока. Сначала я могу завершить поток, но по окончании он продолжает цикл, потому что всегда получает URL снова через Linking.getInitialURL (). Кажется, что URL не очищен, и поэтому продолжает вводить. Как я могу удалить этот URL после завершения потока, чтобы избежать такого поведения?

Я попытался получить все свое локальное хранилище, чтобы увидеть, есть ли URL, также при размонтировании компонента, который я использую Linking.removeEventListener('url', this.handleOpenUrl), но когда компонент монтируется снова, он получит начальный лоток URL Linking.getInitialURL()

async componentWillMount(){
    Linking.getInitialURL().then(url => {
        if (url) {
          this.navigate(url);
        }
      });
  }

  async navigate (url) {
    const route = url.replace(/.*?:\/\//g, '');
    const id = route.match(/\/([^\/]+)\/?$/)[1];
    const routeName = route.split('/')[0];

    if (routeName === 'code') {
      const { navigate } = this.props.navigation;
      this.setState({ code: id });
      navigate({
            routeName: 'Pick',
            params: {
                code: id
            }
        })

  }

  componentWillUnmount() {
    Linking.removeEventListener('url', this.handleOpenUrl);
  }

  handleOpenUrl = (event) => {
    this.navigate(event.url);
  }
...