离子深层链接打破了刷新

Jud*_*ell 5 ionic-framework ionic2 ionic3

我在Ionic 3中使用Ionic Deeplinker作为Web(浏览器)应用程序

当通过URL传递params时,一切都很好:

HTTP://本地主机:8100 /#/赎回/ 593f2ac1e839b689d883448d

悬停,当我刷新我的应用程序时,我得到:

Uncaught (in promise): invalid link: redeem/593f2ac1e839b689d883448d
Run Code Online (Sandbox Code Playgroud)

我正在使用IonicPage装饰器,如下所示:

@IonicPage({
  name: 'redeem',
  segment: 'redeem/:id',
  defaultHistory: ['reward-goals']
})
Run Code Online (Sandbox Code Playgroud)

为什么当我刷新页面时,我得到了这个错误?

请注意:它没有添加到路线的param工作正常:

HTTP://本地主机:8100 /#/赎回

因此,路由参数的某些内容会导致问题.

更新: 部署我的应用程序时,一切正常,但我仍然在控制台中看到错误. 在此输入图像描述

Jud*_*ell 1

我发现了这个问题。在 ionics 深度链接器中: 在此输入图像描述

和... 在此输入图像描述

他们需要对组件名称进行字符串匹配。或者需要将所有内容都放到第一个 / 并与之匹配。我已经提交了错误报告..

****更新****** 我将离子代码更改为这个...

UrlSerializer.prototype.getLinkFromName = function (nameOrComponent) {
        return this.links.find(function (link) {
            return (link.component === nameOrComponent) 
                       || (link.name === nameOrComponent) 
                       || (nameOrComponent.indexOf(link.name )>-1); //added this line
        });
    };
Run Code Online (Sandbox Code Playgroud)

而且效果很好。我希望在即将发布的版本中看到针对此问题的补丁。我确信这也可以作为补丁放在索引页的底部。