必知小技巧:微信小程序this.setData修改对象中某个属性的值

2023-12-03 18:58

本文主要是介绍必知小技巧:微信小程序this.setData修改对象中某个属性的值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

关于“微信小程序 this.setData 修改对象中某个属性的值”,这是一个非常常见且有用的操作。在本文中,我将模拟各种使用场景介绍如何使用 this.setData 方法来实现相关的操作。从而帮助大家更好地了解和掌握这一技巧。


常规写法

做过微信小程序的同学都知道,this.setData() 方法可以修改或者更新 data 中的值 。那不知道大家有没有遇到这么一种情况,我要修改对象中某个属性的值该怎么办呢?是不是第一想到的就是这样写:

在这里插入图片描述

结果是在编译器中就直接报错,很显然,肯定是不能这样写的,那如果我就是想要修改对象中某个属性的值呢?


一、在其外面套一层数组

['对象.属性']: 修改的值

.wxml

<view><view class="tabsBox"><text>性别:</text><text>{{objs.sex}}</text></view><view class="tabsBox"><text>年龄:</text><text>{{objs.age}}</text></view><button bindtap="btnClick">点击修改</button>
</view>

.js

const app = getApp()
Page({data: {// 默认的数据objs: {sex: "女",age: "18",},},// 点击事件btnClick() {this.setData({['objs.sex']: "男",['objs.age']: "20",})},
})

实现效果

在这里插入图片描述


二、放在对象中

对象: {属性: '值'}

.wxml

<view><view class="tabsBox"><text>性别:</text><text>{{objs.sex}}</text></view><view class="tabsBox"><text>年龄:</text><text>{{objs.age}}</text></view><button bindtap="btnClick">点击修改</button>
</view>

.js

const app = getApp()
Page({data: {// 默认的数据objs: {sex: "女",age: "18",},},// 点击事件btnClick() {this.setData({objs: {sex: "男",},})},
})

实现效果

在这里插入图片描述

可以看到一个很明显的问题,我明明只修改了性别字段的值,但是默认存在的年龄字段的值却消失了,因为这种写法会导致该对象的其他属性全部消失,所以要慎重选择,尽量使用第一种写法就好啦。


.wxss文件

.tabsBox {margin: 0rpx 10rpx;padding: 20rpx 0rpx;font-size: 30rpx;border-bottom: 1px solid gainsboro;
}

- 拓展延伸

修改数组中某个对象的属性值

.wxml

<view><view wx:for="{{imgData}}" wx:key="index"><view>{{item.imgTit}}</view><view><image src="{{item.imgUrl}}"></image></view></view><button bindtap="btnClick">点击修改</button>
</view>

.js

const app = getApp()
Page({data: {// 默认的数据imgData: [{imgTit: "风景图1",imgUrl: "https://img0.baidu.com/it/u=530426417,2082848644&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1656522000&t=0050fe01b5db9476166821b30d44655c",}, {imgTit: "风景图2",imgUrl: "https://img1.baidu.com/it/u=700675537,3936578503&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1656522000&t=54182c0a2d3f1d8d22d9c24e8556a12e",}],},// 点击事件btnClick() {//数组动态赋值const imgOne = "imgData[0].imgUrl";const imgTwo = "imgData[1].imgUrl";this.setData({[imgOne]: "https://img0.baidu.com/it/u=3643895624,2552772604&fm=253&fmt=auto&app=120&f=JPEG?w=1200&h=675",[imgTwo]: "https://img2.baidu.com/it/u=63249423,2260265143&fm=253&fmt=auto&app=120&f=JPEG?w=889&h=500",})},
})

如下:
在这里插入图片描述

这篇关于必知小技巧:微信小程序this.setData修改对象中某个属性的值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/450510

相关文章

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件