我在微信小程序里面希望实现如下功能,有两个变量first 和 sec ,初始值都是"", 有两个butten,bt1和bt2,页面显示为“木”和“土”,对应两个函数 dianji1和dianji2,当一个按下一个按钮时,判断变量first是否为空(“”),如果是的话,就用setData给first赋值,bt1赋值“木”bt2赋值“土”,如果判断first不为空,就用setData给sec赋值,bt1赋值“木”bt2赋值“土”,然后用个文本框显示出来,效果大概如下:
代码如下:
index.js代码:
const app = getApp()
var first=''
var sec=''
Page({
data: {
motto: 'Hello Tony',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
canIUseGetUserProfile: false,
canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false
},
// 事件处理函数
。。。
其他一些函数
。。。
dianji() {
if (first == "") {
this.setData({
first:"木",
})
}
else {
this.setData({
sec:"木",
})
}
},
dianji2() {
if (first == "") {
this.setData({
first:'土'
})
}
else {
this.setData({
sec:"土",
})
}
},
})
index.wxml部分代码:
<button id='btn1' class='but' bindtap="dianji" size="mini">
木
</button>
<button id='btn2' class='but' bindtap="dianji2" size="mini">
土
</button>
执行以后发现,无论我怎么点击,调试器里面的AppDate都只能显示first的值改变了,但是sec始终没有,
也就是说dianji函数里面的else语句始终没能执行。
我的判断是虽然在调试台的AppDate里看到的first的值改变了,但是再次点击按钮的时候,它读取到的first的值还是 空值 "" ,所以每次执行的都是 if 里面的语句,没有执行else的语句。
是不是说setData没能改变first变量的值,或者说没能把这个改变传给别的函数?
折腾了几天也没研究出来,恳求谁懂的给予指点,谢谢啦!