angular6 相同页面跳转参数不同 页面不刷新问题解决

最近做前端配置化查询页面时,多个查询配置为相同路由对应的同一个页面,只是参数不同,相同页面跳转时,出现了页面不刷新问题。

尝试着在对应位置使用  this.ref.markForCheck(); this.ref.detectChanges(); 也必须滚动滚动条才能驱动页面更新。。调试发现,页面刷新了,有些原始数据已经渲染上去,但ngOnInit()函数没有执行,想着在constructor里面手动触发ngOnInit,但是除此进入时会执行两次ngOnInit。不妥。

之前跳转用的router.navigate,

this.router.navigate([btn.linkUrl], {

        queryParams: queryParams

  });

最后找到了个好方法,在点击跳转方法里,使用router.navigateByUrl

this.router.navigateByUrl('', {skipLocationChange:true}).then(() => {

    this.router.navigate([btn.linkUrl], {

            queryParams: queryParams

    });

});

完美了解决了问题。。

来研究一下navigate和navigateByUrl的区别吧,我先下班,后续再补。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容