У меня есть свой проект на 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);
}