小程序
小游戏
企业微信
微信支付
扫描小程序码分享
onLoad里面使用that.setData赋值,一开始可以,当离开页面返回本页面之后就无法赋值了
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
onShow
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
onShow 同样没有效果
that指向了旧的实例了吧
应该是,下面有回答已经解决了。
onLoad是页面加载时,返回到页面是onShow。可以先用console.log或者debugger看看执行没有。再者就可能是你的that的问题,建议在作用域没问题的情况用this
onShow: function() {
var that = this
client.onMessageArrived = function(msg) {
var t = JSON.parse(msg.payloadString)
var color = t.color
if (color == 'black'){
that.setData({
color: 'green'
})
}else{
color: 'black'
}
if 语句会执行,但是下面赋值就不执行了
你的页面是不是卸载后,重新进入了。因为在你页面unOnload(卸载)时,当时的that就已经是卸载前的页面实例了。
我是点击左上角的返回按键返回到其他页面的,然后其他页面点击进入的
这样是不行的,左上角的返回会卸载页面,所以当that.setData时,你的that页面已经被卸载了。你需要把状态存在App中,然后在onShow里读取全局状态,然后判断状态,进行setData。
学过java的话你应该知道new A() != new A()。你每次打开一个新的页面,虽然都是一个A页面,但他们不同..
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
onShow
onShow 同样没有效果
that指向了旧的实例了吧
应该是,下面有回答已经解决了。
onLoad是页面加载时,返回到页面是onShow。可以先用console.log或者debugger看看执行没有。再者就可能是你的that的问题,建议在作用域没问题的情况用this
onShow: function() {
var that = this
client.onMessageArrived = function(msg) {
var t = JSON.parse(msg.payloadString)
var color = t.color
if (color == 'black'){
that.setData({
color: 'green'
})
}else{
that.setData({
color: 'black'
})
}
if 语句会执行,但是下面赋值就不执行了
你的页面是不是卸载后,重新进入了。因为在你页面unOnload(卸载)时,当时的that就已经是卸载前的页面实例了。
我是点击左上角的返回按键返回到其他页面的,然后其他页面点击进入的
这样是不行的,左上角的返回会卸载页面,所以当that.setData时,你的that页面已经被卸载了。你需要把状态存在App中,然后在onShow里读取全局状态,然后判断状态,进行setData。
学过java的话你应该知道new A() != new A()。你每次打开一个新的页面,虽然都是一个A页面,但他们不同..