Linking.getInitialURL一直在执行,应用程序被复制

时间:2017-08-18 09:09:29

标签: android react-native

对于长篇大论的标题感到抱歉。

这是我的componentDidMount()功能

componentDidMount() {
  Linking.getInitialURL().then(data => {
    console.log(data);
  });
}

当我启动应用时,data被设置为null

用户然后通过谷歌浏览器登录,该浏览器通过

打开
Linking.open('https://...);

当用户被重定向回我的应用程序时,我可以看到已填充data。这一切都很好。

然而,当我被重定向回来时,我看到重复的组件。这是React Native Debugger的屏幕截图。我有<AppContainer root=1..><AppContainer root=11..>

enter image description here

由于这种重复,我的应用会调用componentDidMount()两次,Linking.getInitialURL()会多次调用。

此外,如果我通过开发人员菜单刷新应用,则data承诺返回的Linking.getInitialURL仍然会填充null

1 个答案:

答案 0 :(得分:2)

此问题的解决方案是将android:launchMode="singleTask"添加到我的.MainActivity活动中。

this Github线程上找到解决方案。