收藏
回答

setData 动态设定值问题?

有个方法是 修改 data 属性里的某个值


selectCar(event) {
        let status = event.currentTarget.dataset.status == true
        this.setData({
            selectGoods: status
        })
}


打印status 的值 是  布尔值的 true

修改的时候发现 修改失败了  也不提示任何报错信息

selectCar() {
        this.setData({
            selectGoods: true
        })
  }

直接赋值却发现可以修改值


这个是个bug ?


更新---------------


selectCar(event) {
        let status = Boolean(Number(event.currentTarget.dataset.status)) // status 传递的 是  0  和   1
        this.setData({
            selectGoods: status
        })
    }

这样就可以实现动态赋值了  如果 直接判断 就不行?  这是什么鸟逻辑

最后一次编辑于  2019-08-16
回答关注问题邀请回答
收藏

4 个回答

  • 老张
    老张
    2019-08-16

    event.currentTarget.dataset.status == true可能返回false.

    2019-08-16
    有用
    回复
  • 拾柒
    拾柒
    2019-08-16

    你第一个写的是let status = event...==true 双=不是判断吗,我没看懂你写的这个的意思,

    为什么不直接写let status = event...或者let status=true

    2019-08-16
    有用
    回复 4
    • meiko
      meiko
      2019-08-16
      因为有些按钮只是简单的隐藏显示 通过 绑定的 data-status="true" 或者 data-status="false" 来控制 元素隐藏还是显示
      2019-08-16
      回复
    • meiko
      meiko
      2019-08-16
      直接赋值的话 他是 字符串 wx:if 判断的时候 字符串都是有东西的 视为真 则会一直显示不会隐藏
      2019-08-16
      回复
    • 拾柒
      拾柒
      2019-08-16回复meiko
      let status = event...==true?false:true不行吗
      2019-08-16
      回复
    • meiko
      meiko
      2019-08-16
      不行 我已经试过了
      2019-08-16
      回复
  • 泡泡生活
    泡泡生活
    2019-08-16

    感觉你的代码写的有点问题呀

    2019-08-16
    有用
    回复
  • 吴迪
    吴迪
    2019-08-16

    这................

    2019-08-16
    有用
    回复 1
    • meiko
      meiko
      2019-08-16
      因为有比较多的简单逻辑 套用了这个方法 我不可能要隐藏和显示都要弄成一个方法吧
      2019-08-16
      回复
登录 后发表内容
问题标签