Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 重新加载并导航到另一页后未销毁组件_Angular_Ionic Framework_Ionic4_Angular Router - Fatal编程技术网

Angular 重新加载并导航到另一页后未销毁组件

Angular 重新加载并导航到另一页后未销毁组件,angular,ionic-framework,ionic4,angular-router,Angular,Ionic Framework,Ionic4,Angular Router,在Ionic v4应用程序中,当我刷新页面,然后通过调用Router.navigateByUrl导航回另一个页面时,不会调用Ngondestory 基于,我尝试通过在Ngondestory上应用@HostListenerwindow:beforeunload来在重新加载时销毁页面,但我面临的问题不同,我需要的是,页面刷新后需要销毁,然后导航到另一个页面 显示了我的问题,以下是重现问题的步骤: 访问应用程序:应用程序将自动加载到父页面,这是演示中的第一个也是唯一一个选项卡 通过单击“导航到子页面”

在Ionic v4应用程序中,当我刷新页面,然后通过调用Router.navigateByUrl导航回另一个页面时,不会调用Ngondestory

基于,我尝试通过在Ngondestory上应用@HostListenerwindow:beforeunload来在重新加载时销毁页面,但我面临的问题不同,我需要的是,页面刷新后需要销毁,然后导航到另一个页面

显示了我的问题,以下是重现问题的步骤:

访问应用程序:应用程序将自动加载到父页面,这是演示中的第一个也是唯一一个选项卡 通过单击“导航到子页面”按钮导航到子页面:然后打开子页面 通过转到应用程序浏览器中的条形图地址,在其内部单击,然后按enter键来重新加载子页面。不要使用“重新加载”按钮,因为它会重新加载应用程序并直接指向父页面 通过单击“导航回父级”按钮导航回父级页面 在最后一步中,控制台不会记录子页面是否已销毁,并且当从父页面再次访问它时,也不会记录它是否已初始化。这意味着子页面不会被破坏


请注意,在子页面未刷新的情况下,通过单击“导航回父级”按钮,子组件将被销毁,并调用NDESTROY,然后在下一次访问中创建/初始化。

每当路由器刷新后初始化组件时,我发现一件奇怪的事情,在离子液体中没有被破坏的成分

我试过下面的方式。刷新子组件后

在父组件中实现OnInit和OnDestroy。 然后在子组件中按enter键,然后单击“导航到父组件” 之后,我单击了导航到子组件。这里显示了该控制台中的“父组件已初始化,父组件已销毁”` 导出类Tab1Component实现OnInit、OnDestroy{ 构造函数私有路由器:路由器{} 导航儿童{ this.router.navigateByUrl/tabs/tab1/child } 恩戈尼特{ console.logParent组件已初始化 } @HostListenerwindow:卸载之前 恩戈德斯特罗{ console.logParent组件已销毁 } }
我和你一样添加了日志,我也注意到了这种行为。这是因为导航变得相反:子组件保持在原位,父组件在每次导航时初始化并销毁