繁体   English   中英

从其他页面导航到同一页面后无法打开离子菜单

[英]Ionic menu unable to open after navigate to the same page from other page

我有一个页面(称为页面 A)包含 2 个菜单。 左侧菜单过滤 function 菜单是页面内部的组件。 右侧菜单为通用菜单,可在所有页面打开。

这两个菜单在正常流程中都没有问题,例如Home Page -> Page A 当我们内部有更多页面堆栈时会发生此问题,例如Home Page -> Page A -> Page B -> Page C -> Page A

左侧菜单无法为上面的流程打开。 当我打印出菜单 controller 时,我看到菜单数组由 3 个菜单组成。 第一个菜单是通用菜单,第二个和第三个菜单是具有相同菜单id的过滤菜单。 我怀疑左侧的旧菜单和新菜单重叠 tgt。 如文档所述,一次只能激活一个菜单。 因此,新菜单现在不起作用。 正常流程中的菜单数组 复杂流程中的菜单数组

一旦我再次刷新页面,问题就会消失。

我尝试了几种方法来解决这个问题。 但也失败了。

  1. 我试图将下面的代码放在 ionViewWillEnter() 中。 试图禁用旧菜单。 应用代码的菜单数组`

    this.menuCtrl.getMenus().then((menu) => { if(menu.length > 2) { 菜单1 .disabled = false 菜单2 .disabled = true } })

`

  1. 我没有使用 ionic 默认菜单,而是使用 css、html 和 js 来构建我自己的菜单。 但同样的问题仍然存在。

页A草图

希望你们能帮我解决这个问题。 感谢你的帮助。 谢谢!

不确定具体情况,但会尽力提供帮助

我有类似的问题,有 2 个独立的模块,每个模块的独立菜单很少。 就像你的情况一样,当我使用绝对 url 时它工作正常,但是当我尝试使用路由从模块 a 导航到 b 然后再回到 a 时,第一个模块的菜单没有显示更多

通过 DOM 我发现在进入模块 b 之后,模块 a 没有从 DOM 中删除(只是显示:无),所以在返回它之后它不再能够正常工作

解决方法是将父级替换为默认路由标签(在我的例子中是角度的)

似乎是 ionic-router-outlet 错误(顺便说一句,大约一年前 ion-nav 也有类似的问题,当它制作带有 display: none 的组件而不是从 DOM 中删除它时,也许这就是 ionic 工具的偶然问题)

更新:我几乎可以肯定 ion-tab 在内部使用 ion-router,所以如果你使用它,也许值得编写你自己的选项卡组件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM