收藏
回答

如何读取 properties 作为 data 的初始值?

我想以传入的 properties 作为 data 的初始值


Component({
  properties: {
    a: {
      type: Number,
      value: 11
    }
  },
  data: {
    b: this.data.a - 1,
  }
});


这样写会报错

TypeError: Cannot read property 'data' of undefined


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

3 个回答

  • 叫我狗蛋爸爸🐶 คิดถึง
    叫我狗蛋爸爸🐶 คิดถึง
    2019-02-13
    properties: {
        a: {
          type: Number,

          value: 11,

          observer: (val) => {
              this.setData({
                   b: val-1
              })
          }
        }
     }


    2019-02-13
    有用 1
    回复 5
    • 李小凯:9090
      李小凯:9090
      2019-02-13

      这样 a 每次变化都是 setData 吧?能否只有一次

      2019-02-13
      回复
    • 叫我狗蛋爸爸🐶 คิดถึง
      叫我狗蛋爸爸🐶 คิดถึง
      2019-02-21回复李小凯:9090

      那你校验一下不就好了吗?如果改变过那就不set了


      2019-02-21
      回复
    • Adam-APP小程序网站开发
      Adam-APP小程序网站开发
      2019-11-13
      感觉property 的默认 value 不会触发observer
      2019-11-13
      回复
    • 鲸
      2021-04-18
      this指向错啦,this.setData
      2021-04-18
      回复
    • 六月在春天
      六月在春天
      2022-02-28回复
      这样不会报错
      properties: {
          a: {
            type: Number,
            value: 11,
            observer:function(val) {
                this.setData({
                     b: val-1
                })
            }
          }
       }
      2022-02-28
      回复
  • 杨泉
    杨泉
    2019-02-14

    在attached里面处理

    2019-02-14
    有用
    回复
  • 吴奕群
    吴奕群
    2019-02-13

    这个写法错的,不能直接写表达式

    2019-02-13
    有用
    回复 2
    • 李小凯:9090
      李小凯:9090
      2019-02-13

      有什么骚操作吗?

      2019-02-13
      回复
    • 吴奕群
      吴奕群
      2019-02-13回复李小凯:9090

      在组件的attached事件去做这件事呗

      2019-02-13
      回复
登录 后发表内容