小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 需求的场景描述(希望解决的问题)
大概的代码片段如下:我想在setLight函数中改变Page中的data 从而渲染到wxml中显示,要怎么做呢?
function setLight(myLight){
//怎么将myLight的值同步到Page中的data的light?????
}
Page({
/**
* 页面的初始数据
*/
data: {
light:0,
},
)
- 希望提供的能力
怎么将myLight的值同步到Page中的data的light?????
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
wxml:
<button bindtap='setLight' data-light='100'>设置light</button >
<view>light:{{light}}</view>
JS:
light:0
setLight(e){
this.setData({
light:e.currentTarget.dataset.light
})
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我的函数不能写在Page里 所以不能用this 还有其他方法吗? 因为这个函数会被Page里的其他函数多次调用,如果写在Page里就会报错。
如果写在Page里再调用 报错信息如下:
VM3879:1 thirdScriptError
addDeviceByImei is not defined; [Component] Event Listener Error @ dist/modal/index#(anonymous)
ReferenceError: addDeviceByImei is not defined
wxs https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/index.html?search-key=wxs
非常感谢 没有更简单的方法给Page的data赋值了吗?
非常感谢 我使用了另外一种更简单的方法。如下:
var pageThis = null;
pageThis.setData({
light:myLight,
});
//在onload函数中给pageThis赋值。
onLoad:function(e){
pageThis = this;
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
wxml:
<button bindtap='setLight' data-light='100'>设置light</button >
<view>light:{{light}}</view>
JS:
Page({
data: {
light:0
},
setLight(e){
this.setData({
light:e.currentTarget.dataset.light
})
}
})
我的函数不能写在Page里 所以不能用this 还有其他方法吗? 因为这个函数会被Page里的其他函数多次调用,如果写在Page里就会报错。
如果写在Page里再调用 报错信息如下:
VM3879:1 thirdScriptError
addDeviceByImei is not defined; [Component] Event Listener Error @ dist/modal/index#(anonymous)
ReferenceError: addDeviceByImei is not defined
wxs https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/index.html?search-key=wxs
非常感谢 没有更简单的方法给Page的data赋值了吗?
非常感谢 我使用了另外一种更简单的方法。如下:
var pageThis = null;
function setLight(myLight){
pageThis.setData({
light:myLight,
});
}
Page({
data: {
light:0
},
//在onload函数中给pageThis赋值。
onLoad:function(e){
pageThis = this;
}
}
})