对于长篇大论的标题感到抱歉。
这是我的componentDidMount()
功能
componentDidMount() {
Linking.getInitialURL().then(data => {
console.log(data);
});
}
当我启动应用时,data
被设置为null
。
用户然后通过谷歌浏览器登录,该浏览器通过
打开Linking.open('https://...);
当用户被重定向回我的应用程序时,我可以看到已填充data
。这一切都很好。
然而,当我被重定向回来时,我看到重复的组件。这是React Native Debugger的屏幕截图。我有<AppContainer root=1..>
和<AppContainer root=11..>
由于这种重复,我的应用会调用componentDidMount()
两次,Linking.getInitialURL()
会多次调用。
此外,如果我通过开发人员菜单刷新应用,则data
承诺返回的Linking.getInitialURL
仍然会填充null
。
答案 0 :(得分:2)
此问题的解决方案是将android:launchMode="singleTask"
添加到我的.MainActivity
活动中。
在this Github线程上找到解决方案。