微信小程序怎么在data中使用this

如题,
`

Page({
    data: {
        a: 1, 
        b: 2, 
        c: [{
           a: this.a,
           b: this.b
        }]
    }
 })

`
在data中怎么使用this赋值

阅读 5.8k
5 个回答

不知道你是啥需求。

定义时,数据都还没准备好,没法用this;

另外,即使能调用,this也指向的 不是 data这层,而是c;

var zz= {
    data: {
        a: 1,
        b: 2,
        c: [
            {
              a: 3,
              b: function(){
                console.log(this);
              }
            }
        ]
    }
}
zz.data.c[0].b()
/*
{
    a: 3,
    b: fucntion(){...}
}
*/

如果想只定义一次,可以设置一个变量解决。

var params = {
    data: {
        a: 1,
        b: 2,
        c: []
    }
}

//data指向的是指针,改变它的值,params也会改变
var data = params.data;
data.c.push({
    a: data.a,
    b: data.b
});

Page(params);
新手上路,请多包涵

const tempA = 1;
const tempB = 2;

this.setData({

a:tempA,
b:tempB

})

Page({

data: {
    a: 1, 
    b: 2, 
    c: [{
       a:'',
       b: ''
    }]
}

})

this.setData({

  c : {
    a : this.data.a
  }
})

用不了,很坑

新手上路,请多包涵
Page({
    data: {
        a: 1, 
        b: 2, 
        c: [{
           a: this.a,
           b: this.b
        }]
    }
 })

把a,b 定义到外层

var a=1,b=2;
Page({
    data: { 
        c: [{
           a:a,
           b:b
        }]
    }
 })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题