【问题标题】:Ionic deeplinker breaks on refresh离子深层链接器在刷新时中断
【发布时间】:2017-08-27 13:45:36
【问题描述】:

我在 Ionic 3 中将 Ionic Deeplinker 用于 Web(浏览器)应用程序

当像这样通过 url 传递参数时,一切都很好:

http://localhost:8100/#/redeem/593f2ac1e839b689d883448d

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

Uncaught (in promise): invalid link: redeem/593f2ac1e839b689d883448d

我正在像这样使用 IonicPage 装饰器:

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

为什么我刷新页面的时候出现这个错误?

请注意:它可以正常工作,无需向路由添加参数:

http://localhost:8100/#/redeem

所以关于路由参数的某些东西导致了这个问题。

更新: 部署我的应用程序时,一切正常,但我仍然在控制台中看到错误。

【问题讨论】:

  • 只需添加对issue的引用...

标签: ionic-framework ionic2 ionic3


【解决方案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
        });
    };

而且效果很好。我希望在即将发布的版本中看到这个补丁。我相信这也可以作为补丁放在索引页面的底部。..

【讨论】:

  • 您能否发送一个指向您的问题的链接?
猜你喜欢
  • 2018-01-28
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 2013-05-02
  • 1970-01-01
相关资源
最近更新 更多