diff --git a/src/platforms/app-plus/service/api/ui/tab-bar.js b/src/platforms/app-plus/service/api/ui/tab-bar.js index c835c9cd49e5693966c9eb0507317dc96331b590..c5510fba15d45b4d131eba4f7d9b587b545e13ae 100644 --- a/src/platforms/app-plus/service/api/ui/tab-bar.js +++ b/src/platforms/app-plus/service/api/ui/tab-bar.js @@ -20,9 +20,10 @@ export function setTabBarItem ({ text, iconPath, selectedIconPath, - pagePath + pagePath, + visible }) { - tabBar.setTabBarItem(index, text, iconPath, selectedIconPath) + tabBar.setTabBarItem(index, text, iconPath, selectedIconPath, visible) const route = pagePath && __uniRoutes.find(({ path }) => path === pagePath) if (route) { const meta = route.meta diff --git a/src/platforms/app-plus/service/framework/tab-bar.js b/src/platforms/app-plus/service/framework/tab-bar.js index e056dfd129019eac17357704114d64fb25bc78ae..3b14da16f94c44bb561e7705e37f0d3aff800853 100644 --- a/src/platforms/app-plus/service/framework/tab-bar.js +++ b/src/platforms/app-plus/service/framework/tab-bar.js @@ -49,7 +49,7 @@ function setTabBarBadge (type, index, text) { /** * 动态设置 tabBar 某一项的内容 */ -function setTabBarItem (index, text, iconPath, selectedIconPath) { +function setTabBarItem (index, text, iconPath, selectedIconPath, visible) { const item = { index } @@ -62,7 +62,17 @@ function setTabBarItem (index, text, iconPath, selectedIconPath) { if (selectedIconPath) { item.selectedIconPath = getRealPath(selectedIconPath) } - tabBar && tabBar.setTabBarItem(item) + if (visible !== undefined) { + item.visible = config.list[index].visible = visible + delete item.index + + const tabbarItems = config.list.map(item => ({ visible: item.visible })) + tabbarItems[index] = item + + tabBar && tabBar.setTabBarItems({ list: tabbarItems }) + } else { + tabBar && tabBar.setTabBarItem(item) + } } /** * 动态设置 tabBar 的整体样式 diff --git a/src/platforms/h5/components/app/tabBar.vue b/src/platforms/h5/components/app/tabBar.vue index 9439fdd0a53fce37f8ce440dd46cf86de9339ad8..d1be1eb5c069658517601f1c292b79323721cf3b 100644 --- a/src/platforms/h5/components/app/tabBar.vue +++ b/src/platforms/h5/components/app/tabBar.vue @@ -12,7 +12,7 @@ class="uni-tabbar-border" />