React Navigation 5嵌套导航中Deep Linking关联Login页面失败如何解决
解决方案
你的两次配置失败的原因是没有匹配React Navigation要求的嵌套导航层级对应的Deep Link配置规则:
- 第一次配置仅映射了外层
AuthStack导航器到login路径,没有指定AuthStack内部需要打开的子页面,无法精准定位到Login页面 - 第二次配置直接把内层
Login页面放在根screens配置下,根导航器中并没有注册名为Login的screen,匹配直接失效
你需要按照导航的嵌套结构层级书写linking配置,正确配置如下:
const linking = { prefixes: ["wagal://"], config: { screens: { AuthStack: { // 这里不指定path或者设为path: "",就不会在路径里额外增加AuthStack对应的路径段 path: "", screens: { // 嵌套层级的Login页面映射到login路径 Login: "login" } }, // 其他根层级screen的配置继续写在这里 }, }, };
配置完成后访问wagal://login就可以直接唤起Login页面。如果需要传递参数,可以直接修改路径配置,比如要支持wagal://login?from=home携带from参数,把Login的路径配置改为login?:from即可,参数可以在Login页面的route.params中直接获取。
内容的提问来源于stack exchange,提问作者Mir Stephen
相关产品推荐
相关产品推荐

