checkMusic: function () {
let nowMusicId = this.data.musicList[this.data.songIndex].id
console.log(nowMusicId)
wx.request({
url: 'http://localhost:3000/check/music?id=' + nowMusicId,
dataType: 'json',
success: (res) => {
if (res.data.message === "ok") {
this.setData({ musicStatus: res.data.message }) //在此处修改数据
console.log("刚开始的状态:"+this.data.musicStatus)
} else {
wx.showModal({
title: '该歌曲无法播放',
// content:'请前往app播放',
confirmText: "我知道了",
showCancel: false,
success: function (res) {
if (res.confirm) {
console.log("我知道了")
}
}
})
}
console.log("if结束的状态:"+this.data.musicStatus)
}
}),
console.log("requst结束的状态:"+this.data.musicStatus)
},
为什么requst之后数据的改动失效了?
我在其他函数这样的做法都没问题,唯独这里不行,太诡异了
request里面不能用this
we.request的上面添加一行let that=this,后面用that.setData
打印刚开始的状态的时候,打印的不是修改后的值?
wx.request异步事件,this指向发生变化了指向window。和楼上说的那样外层let that=this,把指针记录下,在里面使用that
你怎么改都肯定没变化的嘛,因为你只有设定了默认和改变值,这2种情况,怎么还会有其他的输出?你那个显示没问题的,不知道你要做什么
啊,有什么失效的方法呀