收藏
回答

关于this.setData为什么不能成功赋值?

目的是把单选框内选的值记录下来,首先在js的data里定义了 a1:""

函数如下

b1: function(e,a1) {

console.log(e.detail.value)

this.setData({

a1: e.detail.value

})

console.log(a1)

},

实际选择结果如下:

林表明霁色,城中增暮寒

undefined

很明显a1没有成功赋值,很奇怪

用了thsi.data.a1报错,甚至在app.js里的globalData里声明了 a1:""也没用

为什么这个传值那么复杂?

方便回答一下吗?谢谢了

回答关注问题邀请回答
收藏

2 个回答

  • -Arong
    -Arong
    2022-12-09

    这里console的a1是函数里面的a1不是this.data里面的,你这个this打错了

    2022-12-09
    有用
    回复 1
    • 取名字好烦.
      取名字好烦.
      2022-12-09
      好的 谢谢您
      2022-12-09
      回复
  • 马乾
    马乾
    2022-12-09

    首先 你使用

    this.setData({

    a1:e.detail.value

    })

    赋值的是你整个page 中data对象中的a1,并不是你传过来的a1,所以你打印传过来的a1肯定是没有值的,你应该打印this.data.a1,其次你在app.js里的globalData里声明了a1,你应该使用app.globalData.a1 = e.detail.value(你要先const app = getApp() 获取到app)

    2022-12-09
    有用
    回复 1
    • 取名字好烦.
      取名字好烦.
      2022-12-09
      谢谢您的耐心回答 this.data.a1的输出没有问题
      2022-12-09
      回复
登录 后发表内容