html52.com
我爱小程序-开发者交流社区

【已解决】自定义tabBar无法触发页面wxs的prop监听事件?

需求:当自定义tabBar其中一个tab被点击时,显示另外一个自定义组件A。

思路:通过在page.wxml中添加wxs模块,监听tabBar的prop,以触发A组件的显示。

问题:wxs监听事件无法被触发。

// custom-tab-bar.js
Component({
  data:{showStudioMenu:false},
  methods:{
    whenTap:function(){this.setData({showStudioMenu:true})}
  }      
})

// custom-tab-bar.wxml
<view change:showStudioMenu="{{sm.propObserver}}" >
   <view wx:for="{{normal}}" wx:key="index" id="{{index}}" bindtap="whenTap" >
     <image src="{{item}}" />
   </view>
</view>

// page.wxml
<wxs module="sm">
  var propObserver = function (nv,v,oi,i) {
    console.log("sm.propObserver被执行"); // 不执行...
    console.log(nv,v,oi,i); // 不执行...
  }
  module.exports.propObserver = propObserver
</wxs>



---------------------------------

总结

1、tabBar和页面是兄弟。

2、两兄弟如果一定要通信,page里用getTabBar()后setData(),tabBar里用getCurrentPages()后setData()。

网友回复

武曲心:

你这写法是官方的么?感觉你学的知识是拼凑出来的,再翻一下文档看下吧

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付