根据官方demo写的自定义底部tabbar,当在点击其中一个的时候没切换相应的状态,如图默认状态
当点击关注的时候路径变了,但是没有显示没有切换到关注
代码如下:
<cover-view class="tab-bar"> <cover-view class="tab-bar-border" style="background-color:{{borderColor}}"></cover-view> <cover-view class="progress" style="width:{{progress}};background-color:{{progressColor}}"></cover-view> <block wx:for="{{list}}" wx:key="index"> <cover-view class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab"> <cover-view style="color: {{selected == index ? selectedColor : color}}" wx:if="{{item.text}}">{{item.text}}</cover-view> <cover-image src="{{selected == index ? item.selectedIconPath : item.iconPath}}" class="single-img" wx:else></cover-image> </cover-view> </block></cover-view> |
Component({ data: { selected: 0, color: "#7A7E83", selectedColor: "#fff", borderColor: "rgba(0, 0, 0, 0.33)", progress: '80%', progressColor: "#f40", list: [{ pagePath: "/index/index/index", iconPath: "/image/icon_component.png", selectedIconPath: "/image/icon_component_HL.png", text: "首页" }, { pagePath: "/index/follow/follow", iconPath: "/image/icon_API.png", selectedIconPath: "/image/icon_API_HL.png", text: "关注" }, { pagePath: "/index/record/record", iconPath: "/image/icon_API.png", selectedIconPath: "/image/icon_API_HL.png", text: "" }] }, attached() {}, methods: { switchTab(e) { const data = e.currentTarget.dataset const url = data.path wx.switchTab({ url }) this.setData({ selected: data.index }) } }}) |

在引用tabbar的每个页面的onshow里,增加
if (typeof this.getTabBar === 'function' && this.getTabBar()) { this.getTabBar().setData({ selected: 0 }) }
selected的值是该页面的索引