在大型设备上,我有一个带有左右面板的组件。右侧面板是从左侧选择的组件。
在小型设备上,只能看到左侧的设备,单击列表元素可以打开右侧的设备。按下应用程序中的程序化后退按钮仅会清除所选组件,结果是再次查看了左面板。
所有相同的路线。
我现在想要实现的是浏览器/移动后退按钮的相同行为。我考虑过实现一个CanDeactivatedGuard,如果它是一个很小的视图并且选择了一个元素,则它返回false。但是,该逻辑仅应用于通过后退按钮进行布线。如何在CanDeactivate中确定路由源是否为后退按钮?
也许还有其他可以代替警卫的东西吗?
编辑: 同时,我注意到Guard不是一个选项,因为我要保护的组件不是路由的组件,而是子组件。 找出是否按下了按钮并不复杂。这实际上非常简单(关键字popstate)。具有挑战性的部分是在这种情况下防止路由。