微信小程序 - 调用微信 API 回调函数内拿不到 this 问题【解决方案】
tips: 本人是个小白选手,最近使用TP框架和微信小程序做前后端分离中(因为前端不是很懂),经常遇到的一个问题就是在微信小程序的内置API回调函数中,拿不到this 的问题。
然后百度了一下,发现最简单的问题解决方案就是在使用微信小程序内置API时,先使用一个变量来指代当前的this对象(指针,哈哈哈)
比如下面的例子:
// pages/userdetail/userdetail.js
import {
createStoreBindings} from 'mobx-miniprogram-bindings'
// 获取 store 实例
import {
store} from '../../store/store'
Page({
/**
* 页面的初始数据
*/
data: {
user:store.userinfo
SexList:['男', '女', '无'],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
// 在页面初始化时,完成数据的绑定
this.storeBindings = createStoreBindings(this,{
store, // 数据源
fields : ['userinfo','user_token'] ,// 配置项---按需加载store.js中的配置项即可
actions: ['updateUserInfo','updateUserToken'] //
})
this.data.user = store.userinfo
},
// 性别选择Sheet
SexSelections(){
let that = this
wx.showActionSheet({
itemList: ['男', '女', '无'],
success (res) {
that.setData({
'user.gender':that.data.SexList[res.tapIndex]
})
},
fail (res) {
console.log(res.errMsg)
}
})
},
})