天天看點

uniapp動态修改tabBar問題

好吧,又碰到個小坑,分享下,由于我的項目是多語言是以需要動态切換tabBar文字,話不多說上代碼。
uni.setTabBarItem({
			  index: 3,
			  text: “多語言”,
			  success:function(res){
				  console.log(res)
			  }
			})
           
當你随意把這個東西扔到函數裡面或者app.vue裡面時,這時候坑就來了,發現根本不起左右,或者說隻有重新整理才起作用,由于uniapp他不像h5點一下就重新整理一下,是以如果你是在tabbar界面使用就放在onshow裡,點選就會顯示,但是如果想同時改變全部tabbar的文字這就需要寫在全局了。
created: function() {
uni.$on('setTabBarItem', res => {
				uni.setTabBarItem({
					index: 0,
					text: this.$translationMain('線上'),
					success: function(res) {
						console.log(res)
					}
				})
				uni.setTabBarItem({
					index: 1,
					text: this.$translationMain('聊天'),
					success: function(res) {
						console.log(res)
					}
				})
				uni.setTabBarItem({
					index: 2,
					text: this.$translationMain('發現'),
					success: function(res) {
						console.log(res)
					}
				})
				uni.setTabBarItem({
					index: 3,
					text: this.$translationMain('我的'),
					success: function(res) {
						console.log(res)
					}
				})

			})
			}
           
可以看出我是寫在了App.vue裡,然後在修改語言的時候調用下uni.$emt(‘setTabBarItem’)就可随時切換了。