AceElf - 拙杰

微信小程序 setData 更新数据

注意:以下代码由 chatGPT 生成。

直接设置数据

Page({
  data: {
    count: 0
  },
  incrementCount() {
    this.setData({
      count: this.data.count + 1
    });
  }
});

更新对象中的特定属性

Page({
  data: {
    user: {
      name: '小明',
      details: {
        age: 18,
        address: '北京'
      }
    }
  },
  updateUserDetails() {
    this.setData({
      'user.details.age': 20,
      'user.details.address': '上海'
    });
  }
});

更新数组中的特定元素

Page({
  data: {
    items: [1, 2, 3, 4, 5]
  },
  updateItem() {
    let index = 2;
    let newValue = 10;
    this.setData({
      [`items[${index}]`]: newValue,
      [`items[3]`]: 20
    });
  }
});

更新数组中对象的特定元素

Page({
  data: {
    itemList: [
      { id: 1, name: 'Item 1' },
      { id: 2, name: 'Item 2' },
      { id: 3, name: 'Item 3' }
    ]
  },
  updateUserList(){
    this.setData({
      'itemList[0].name':'hello'
    })
  }
});

动态设置键名

Page({
  data: {
    prefix: 'user_',
    user_id: 1,
    user_name: '小红'
  },
  updateUser() {
    let key = 'name';
    this.setData({
      [`${this.data.prefix}${key}`]: '小蓝'
    });
  }
});

Copyright © 2023-2024 aceelf.com. All Rights Reserved.