this.setData方法修改对象和数组的值

168 阅读1分钟

1、修改简单类型的变量

如果是简单变量,这里的参数名可以不加引号。要注意尽量避免多次调用,可以考虑一次调用同时给多个变量赋值。

this.setData({
   '参数名1': 值1,
   '参数名2': 值2
)}

2、修改引用类型的变量

data: {
    user_info:{
      name: '张三',
      age: 18
    },
    cars:['nio''bmw''wolks']
},
fun(){
    // 1、使用字符串赋值
    this.setData({
      ['user_info.age']: 20,   // 对象赋值
      ['cars[0]']: 'tesla'    // 数组赋值
    })
    // 或
    this.setData({
      'user_info.age'20,   // 对象赋值
      'cars[0]': 'tesla'    // 数组赋值
    })
    // 并且可以使用ES6的对象属性变量名
    let str = user_info;
    this.setData({
      [str + '.age']: 20,   // 对象赋值
    })
    
    // 2、构造变量重新赋值
    let temp = this.data.user_info
    temp.age = 30
    this.setData({
      user_info: temp
    })
    // 或
    let user_info = this.data.user_info
    user_info.age = 30
    this.setData({
      user_info  // 如果变量名称相同直接使用es6的对象简写
    })

},