【发布时间】:2019-02-13 17:42:51
【问题描述】:
我有一个相当直接的 react-navigation 设置,它使用一个 switch navigator,它接受一个参数 signedIn 来设置如下所示的初始路由:
const uriPrefix =
Platform.OS === 'android'
? 'myApp://myApp/'
: 'myApp://'
const createRootNavigator = (signedIn = false) => (
createSwitchNavigator({
LoginNav,
AllNav: { screen: AllNav, uriPrefix, path: '' }
}, {
initialRouteName: signedIn ? 'AllNav' : 'LoginNav',
})
);
然后我在 RootContainer 中调用它:
const Nav = Navigation(isLoggedIn);
return (
<Nav />
)
在 iOS 上,这适用于 uriPrefix,我可以使用带有链接的 Linking.openURL() 链接到屏幕。
在 Android 上它不起作用。我可以在不使用 switchNavigator 并仅导出 LoginNav 和 AllNav 的情况下使其在 Android 上运行,但我仍然需要 switchNavigator。
我按照此处的说明进行操作:https://reactnavigation.org/docs/en/deep-linking.html,但无法以他们定义的方式传递 uriPrefix。我发现至少对于 iOS,我能够在我的 switchNavigator 中定义它,但它在 Android 上对我来说并不一样。
【问题讨论】:
标签: android react-native react-navigation