gpt4 book ai didi

javascript - 即使我不从外部链接调用,React-native 链接 getinitialurl() 也能正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:43 24 4
gpt4 key购买 nike

我使用链接从浏览器打开我的应用。

当我第一次在浏览器中点击链接时,我的应用程序运行但传入的 URL 在此之后不清除并且 linking.GetInitialUrl() 始终使用该 URL 运行。

我的架构是 myapp://host,我在网络上的 URL 是 myapp://host/ok

我点击我的 URL 并且 linking.getInitialUrl() 工作但是当我下次回到我的屏幕时 linking.getInitialUrl() 返回我的 web URL没有我打开的网页。

componentDidMount() {           
Linking.getInitialURL().then(url => {
if (url) {
alert(url)
}
})
.catch(err => {
console.error(err);
});
Linking.addEventListener('url',this.handleOpenURL);
}


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

handleOpenURL = (event) => { // D
this.linkFunc(event.url);
}

最佳答案

由于您在 componentDidMount 方法中调用 getInitialURL 方法,而没有检查应用程序是否已加载。每当再次加载该组件时,您的 alert(url) 就会被触发。

为了解决这个问题,你必须在应用加载后永远不会再次加载的根组件中调用getInitialURL。或者你可以使用一个全局变量来标记你的应用的状态是否已经加载。

if(!InMemoryData.appLoaded){
Linking.getInitialURL().then(url => {
this._navigate(url);
InMemoryData.appLoaded = true;
});
}

关于javascript - 即使我不从外部链接调用,React-native 链接 getinitialurl() 也能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50540810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com