收藏
回答

急急急!求解答!调用setData其它数据导致app.globalData值发生变化?

截图连接https://mmbiz.qpic.cn/mmbiz_png/WcgUoX8D9LDmSFfShONYG0tBjKYhlODRPGVqJSibhzsou3cvlNSFROCsWKPK4QJKDFBWTY0XicZn5kGicLEGCSkuA/0?wx_fmt=png

为什么app.globalData.systemUserInfo.wechatNumber发生变化
wxml:
输入框:

js:
inputEdit:function(e){
    console.log(app.globalData.systemUserInfo.wechatNumber);
    var that = this;
    // data-开头的是自定义属性,可以通过dataset获取到,dataset是一个json对象
    var dataset= e.currentTarget.dataset;
    var value = e.detail.value;
    var name = dataset.name;
    that.data[name]=value;
    this.setData({
      [name]: value
    });
    console.log('input双向绑定:'+ that.data[name]);
    console.log(that.data.userCardInfo.wechatNumber);
    console.log(app.globalData.systemUserInfo.wechatNumber);
  },
最后一次编辑于  2020-05-06
回答关注问题邀请回答
收藏

2 个回答

  • chyi
    chyi
    2020-05-06

    建议自查是否在某个时间点设置了 app.globalData.systemUserInfo = this.data.userCardInfo 导致建立了双向绑定

    2020-05-06
    有用 1
    回复 9
    • Mr.Dolphin
      Mr.Dolphin
      2020-05-06
      在初始化时有进行,不过是反过来的,this.setData({
              userCardInfo: app.globalData.systemUserInfo
            })
      2020-05-06
      回复
    • chyi
      chyi
      2020-05-06回复Mr.Dolphin
      2020-05-06
      回复
    • chyi
      chyi
      2020-05-06回复chyi
      以上方案适用于 systemUserInfo 只有一层,如果有多层需要深拷贝
      2020-05-06
      回复
    • Mr.Dolphin
      Mr.Dolphin
      2020-05-06回复chyi
      大佬,是要用这种方式赋值吗
      2020-05-06
      回复
    • chyi
      chyi
      2020-05-06回复Mr.Dolphin
      我错了,你删掉代码中的 that.data[name]=value; 这一行试试
      2020-05-06
      回复
    查看更多(4)
  • Mr.Dolphin
    Mr.Dolphin
    2020-05-06

    求大佬们帮忙解答解答!非常感谢

    2020-05-06
    有用
    回复
登录 后发表内容
问题标签