阿尔法羊 2021-04-11 14:24 采纳率: 0%
浏览 144

微信小程序 setData 不能修改变量的问题

我在微信小程序里面希望实现如下功能,有两个变量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变量的值,或者说没能把这个改变传给别的函数?

折腾了几天也没研究出来,恳求谁懂的给予指点,谢谢啦!

  • 写回答

5条回答 默认 最新

  • 一剑荒芜 2021-04-11 15:11
    关注

    你这上面声明的var first = “” ;点击的时候第一个就判断 if (first == "")  它肯定 不去else啊

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值