page里怎样不定义that传递值或函数?
发布于 6 年前 作者 zzou 11660 次浏览 来自 问答

有一个需求,不能使用 var that = this;,怎样在别的组件里调用this

Page({
    data:{
        title: '测试',
    },
    bindViewTap: function (e) {
        //自定义
    },
    onLoad: function () {
       //var that = this; 不能在showActionSheet之前定义that,如何在success里获取title或执行bindViewTap
       wx.showActionSheet({
           itemList: ['A', 'B', 'C'],
	   success(res){
	       //不能在showActionSheet之前定义that,如何在success里获取title或执行bindViewTap
	   },
	   fail(res){
	   }
	})
    }
})

4 回复

你这个需求有点奇怪。

首先只看你贴的代码的话,Page的onLoad里面使用that完全没问题,问什么要有不能定义var that = this这个需求呢?请说明你的真正用意?

你的问题标题为“…怎样在别的组件里调用this” ? 如果是想问组件间通信的话,可以参考:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html

  1. 自定义组件时,在wxml页面中传递数据给自定义组件的属性值
  2. 配合selectComponent方法,在Page中可以调用组件中的方法,与之通信
  3. 直接定义组件的监听事件(bind)或使用代码触发监听事件(trigger),然后在Page中定义监听事件,与组件通信。

不要使用var 声明this

建议使用const

  wx.showActionSheet({
           itemList: ['A', 'B', 'C'],
	  success:(res)=>{
		console.log(res)
	}
})

若有帮助请帮忙点个"有用"谢谢👇👇

ES6 箭头函数 =>

回到顶部