import Permission from "../../../../utils/Permission"; type NavItem = { title: string; icon: string; url: string; requiredUploadPermission: boolean; }; interface OtherData { navList: NavItem[]; canUpload: boolean; } const baseNavList: NavItem[] = [ { title: "备忘录", icon: "task-checked", url: "/pages/main/other/memo/index", requiredUploadPermission: true }, { title: "专拍", icon: "face-retouching", url: "/pages/main/other/portfolio/index", requiredUploadPermission: false } ]; function buildNavList(canUpload: boolean): NavItem[] { if (canUpload) { return [...baseNavList]; } return baseNavList.filter((item) => !item.requiredUploadPermission); } Page({ data: { navList: buildNavList(false), canUpload: false }, async onShow() { const cached = Permission.getCachedUploadPermission(); let canUpload = cached; if (cached === null) { canUpload = await Permission.checkAndCacheUploadPermission(); } this.setData({ canUpload: !!canUpload, navList: buildNavList(!!canUpload) }); }, onNavTap(e: WechatMiniprogram.BaseEvent) { const { url } = e.currentTarget.dataset as { url?: string }; if (!url) { return; } wx.navigateTo({ url }); } });