微信小程序双层/多层 wx:for 循环嵌套,关于内外层的 index 和 item ;data-index 传递两个参数

        微信小程序用 wx:for 循环可以快速将后端 js 的数组快速显示到前端;

        那假如数组中嵌套数组;就存在内外层两层及以上的多层嵌套循环了。

        那么如果两层的嵌套式循环 index 究竟是属于哪一层呢?item 又属于哪一个呢?

        

<view><view wx:for="{{questList}}" wx:key="index"><view bindtap="showContent" data-index="{{index}}">{{index}} {{item.title}}</view><view><checkbox-group  wx:for="{{item.items}}"><view><checkbox checked="{{item.checked}}" />{{index}}{{item}}<text>{{item.name}}</text></view></checkbox-group></view></view>
</view>

        我在这里使用的是 checkbox 复选框,下面是 js 中的内容数据

data: {questList: [{title: 'Q.问题',items: [{ name: '美国',checked:false},{ name: '中国',checked:true},{ name: '巴西',checked:false},{ name: '日本',checked:false},{ name: '英国',checked:false},{ name: '法国',checked:false}]}, {title: 'Q.问题',items: [{ name: '美国',checked:false},{ name: '中国',checked:true},{ name: '巴西',checked:false},{ name: '日本',checked:false},{ name: '英国',checked:false},{ name: '法国',checked:false}]}],},

这个数据有两层嵌套的数组数据了。

        最直接的两侧嵌套循环显示就完成了;

        那么关于内外层的 index 下标关系:在默认情况下,这个第二层的循环也是用 index 作为下标;并且直接覆盖第一层的 index ;也就是说如果你是在第二层循环中输出 {{index}} 那么这个输出的是第二层的下标值;如果说你是在第一层循环中输出 {{index}} 那就是第一层的下标值;

        同样 item 也是同理;若只是这样没有重新定义;item 也和 index 同理,在不同的循环层中会覆盖不同的 item 值。

        那么如果规范化的话:通常会选择重新定义一个 key 、index、item 用以区分开不同的循环下表和内容;(当然,你不重新定义也是可以的,也不会报错,用起来还省事)

        首先定义一个新的 key 

<view><view wx:for="{{questList}}" wx:key="index"><view bindtap="showContent" data-index="{{index}}">{{index}} {{item.title}}</view><view wx:if="{{item.folding}}"><checkbox-group wx:for="{{item.items}}" wx:key="pancan"><view><checkbox checked="{{item.checked}}" />{{index}}{{pancan}}<text>{{item.name}}</text></view></checkbox-group></view></view>
</view>

        其实这个 key 还是写一下吧;不写的话不会爆红错误;但是会有黄色的提示老是弹出来。

        在 wx:for 循环中,应该使用 wx:for-item 来指定当前项的变量名。在第二次循环中,如果你希望使用 pancan 作为下标值,而不是继续使用外部循环的 index。为了做到这一点,你需要在内部循环中使用另一个变量来表示内部下标。在代码中使用 innerIndex 作为新的内部循环的下表。

<view><view wx:for="{{questList}}" wx:key="index"><view bindtap="showContent" data-index="{{index}}">{{index}} {{item.title}}</view><view wx:if="{{item.folding}}"><checkbox-group wx:for="{{item.items}}" wx:key="pancan" wx:for-item="pancan" wx:for-index="innerIndex"><view><checkbox checked="{{pancan.checked}}" />{{innerIndex}}{{pancan}}<text >{{pancan.name}}</text></view></checkbox-group></view></view>
</view>

        现在,通过使用 wx:for-item="pancan"pancan 变量将包含当前项的值。内部循环将使用 innerIndex 作为下标值,而不是外部循环的 index

        

        wx:for-item="pancan"这个是什么用的呢? wx:key="pancan" 这个又是什么用的呢?🤔

  wx:for-item 是一个指定循环中单个项目变量名称的属性。当你在 wx:for 中循环列表时,它告诉小程序哪个变量名代表列表的当前项目。这样你就可以使用这个变量来访问每个循环项目的属性。

        例如,如果你指定 wx:for-item="pancan",那么在循环中,每个项目就会被命名为 pancan。这使你能够引用项目的属性,例如 pancan.namepancan.checked。通过 wx:for-item,你可以确保循环中的每个项目都有一个唯一的标识符。

   wx:key 是用来标识循环项目的属性。它的主要作用是告诉小程序每个循环项目的唯一标识符,这样小程序在重新渲染或进行 DOM 操作时可以优化性能。如果没有指定 wx:key,可能会导致小程序每次重新渲染整个列表,这可能会影响性能。

        通过为 wx:for 设置 wx:key,你可以告诉小程序用哪个字段来唯一标识循环中的每个项目。例如,设置 wx:key="pancan" 时,表示小程序会将 pancan 的值作为循环项目的唯一标识符,从而在需要重新渲染或更新时提高效率。

        那么双层循环遍历读取数组的就完美完成了。你可以分别读取她们的下表和值。

        

        如果我还想将数据通过点击的方法跳转到方法,并将数据给到方法中处理。那么可以使用 data-index 

<checkbox-group bindchange="onCheckboxChange"  wx:for="{{item.items}}" wx:key="innerIndex" wx:for-index="innerIndex" wx:for-item="innerItem" data-index="{{index}}">

        使用 data-index 可以将 index 等各类数据传递到给方法中;

        🙋:那我要两个值呢?

        额........🤔

        这个也没问题;同样可以用 data-index 可以将多个数据传递。如下:

<checkbox-group bindchange="onCheckboxChange"  wx:for="{{item.items}}" wx:key="innerIndex" wx:for-index="innerIndex" wx:for-item="innerItem" data-index="{{[index, innerIndex]}}">

           那么接收到的数据就如下:0是第一层循环的下表,1是第二层循环的下标。在这个例子中,我将 data-index 设置为一个包含外部索引 index 和内部索引 innerIndex 的数组。然后,当你点击或触发事件时,可以通过解析这个数组来获取这两个索引值。结果如下:

        如果文章对你有帮助,记得 点赞、收藏、关注👍⭐🧧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/26062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“新E代弯道王”MAZDA EZ-6亮相2024重庆国际车展

6月7日-6月16日&#xff0c;第二十六届重庆国际车展隆重开幕&#xff0c;合资品牌首款基于纯电平台的新能源轿车MAZDA EZ-6&#xff08;以下称EZ-6&#xff09;领衔长安马自达全系车型亮相N8馆T01展台。车展期间&#xff0c;重庆及周边地区的马自达用户、粉丝、车友可前往长安马…

代码签名证书怎么申请?有什么条件?

代码签名证书是由证书颁发机构(CA)颁发的数字证书&#xff0c;用于验证组织/软件作者的身份并确保软件/应用程序/程序的完整性。它们包含组织的数字签名、组织名称和时间戳&#xff08;如果需要&#xff09;。 软件开发人员利用代码签名证书将其数字签名放在应用程序、可执行文…

弱智吧”,人类抵御AI的最后防线

“写遗嘱的时候错过了deadline怎么办&#xff1f;” “怀念过去是不是在时间的长河里刻舟求剑&#xff1f;” “英语听力考试总是听到两个人在广播里唠嗑&#xff0c;怎么把那两个干扰我做题的人赶走&#xff1f;” 以上这些饱含哲学但好像又莫名其妙的问题&#xff0c;出自…

【简单学习一下卷积神经网络】-基于肆十二的高考例子

前言一、白话卷积神经网络总结 前言 【参考】 主要是P2⇨手把手教你用tensorflow2训练自己的数据集 -------2024/5/4 一、白话卷积神经网络 高考前需要大量的做题训练---->相当于数据集。 做题过程中【于标准答案进行比对】产生的错题⇨loss&#xff08;误差&#xff09; 回…

SkyWalking之P0核心业务场景输出调用链路应用

延伸扩展&#xff1a;XX核心业务场景 路由标签打标、传播、检索 链路标签染色与传播 SW: SkyWalking的简写 用户请求携带HTTP头信息X-sw8-correlation “X-sw8-correlation: key1value1,key2value2,key3value3” 网关侧读取解析HTTP头信息X-sw8-correlation&#xff0c;然后通过…

C++九州控制地址结构else 陈述

else如同英文字义&#xff0c;九州qa98錪cc否则的意思&#xff0c;通常放在if的后面&#xff0c;若if的条件为真&#xff0c;就执行if底下大括弧围起来的程式区块&#xff0c;若为假&#xff0c;就执行else底下大括弧围起来的程式区块。 形式如下&#xff1a; 这个概念用于二选…

盲盒小程序推广与运营策略的挑战

随着盲盒经济的兴起&#xff0c;越来越多的商家开始关注并尝试开发盲盒小程序。然而&#xff0c;在推广和运营盲盒小程序的过程中&#xff0c;我们也不可避免地会遇到一些挑战。下面&#xff0c;我将就用户获取、留存以及活跃度提升等方面&#xff0c;探讨这些挑战及可能的应对…

动态内存管理<C语言>

导言 在C语言学习阶段&#xff0c;指针、结构体和动态内存管理&#xff0c;是后期学习数据结构的最重要的三大知识模块&#xff0c;也是C语言比较难的知识模块&#xff0c;但是“天下无难事”&#xff0c;只要认真踏实的学习&#xff0c;也能解决&#xff0c;所以下文将介绍动态…

镜舟科技与千丁数科开展战略洽谈,探索智慧空间与数据的深度融合

数据作为当下最重要的生产要素之一&#xff0c;数据分析与智慧空间科技的结合正成为推动企业发展的新引擎 。 5 月 15 日&#xff0c;镜舟科技与千丁数科在北京开展战略合作洽谈。本次会议旨在探索双方在智慧空间科技和数据分析领域的合作潜力&#xff0c;共同推进数字经济的新…

Gartner发布企业人工智能治理指南:以企业通用治理框架为基础,确定针对框架六大支柱的AI特定因素

人工智能&#xff08;AI&#xff09;不仅发展迅速而且可能会放大人类的偏见&#xff0c;如何对其实施有效的治理是数据和分析领导者面临的一个挑战。本文提供了一种全面的方法&#xff0c;可用于扩展企业的治理框架&#xff0c;引入信任、透明度和多样性等AI特定的考虑因素。 主…

CMDB是什么实践案例分享

CMDB是什么&实践案例分享 腾讯蓝鲸CMDB通过集中化管理、自动化发现、灵活的模型定义和开放的API&#xff0c;帮助企业高效管理IT资产和配置项&#xff0c;提升运维效率和服务质量&#xff0c;同时支持与其他系统的无缝集成&#xff0c;适用于金融、制造、互联网等多个行业…

WeTrade 在印度尼西亚井里汶成功举办研讨会

端午安康!在这欢乐的假日里&#xff0c;WeTrade和各位投资者分享一则喜事!如果有意参加的&#xff0c;可以联系小编! 5 月底&#xff0c;我们在印度尼西亚井里汶成功举办了一场精彩研讨会&#xff0c;聚集了来自印度尼西亚各地交易社区的100多名交易者。 此次研讨会由经验丰富…

SpringBoot快速部署(2)—不使用docker的常规方法

一、软件下载和部署前准备 安装软件 获取软件安装包 然后上传到服务器的 /tmp 目录下。 软件&#xff1a;nginx、jdk、mysql 下载 X-shell 和 Xftp 注意&#xff1a;这个页面下载安装的才可以免费使用。家庭/学校免费 - NetSarang Website 安装jdk 1.8 tar -zxvf /tmp/jdk-…

服务器数据恢复—热备盘未完全启用导致raid5阵列崩溃的数据恢复案例

服务器存储故障&#xff1a; 一台EMC某型号存储由于存储中raid5阵列出现故障导致服务器崩溃&#xff0c;由于数据涉密&#xff0c;需要工程师到现场恢复数据。 服务器数据恢复工程师到现场后对数据进行检测&#xff0c;经过检测发现服务器崩溃是由于raid中某些硬盘掉线所导致。…

使用 actor-critic 方法来控制 CartPole-V0 游戏

CartPole 介绍 在一个光滑的轨道上有个推车&#xff0c;杆子垂直微置在推车上&#xff0c;随时有倒的风险。系统每次对推车施加向左或者向右的力&#xff0c;但我们的目标是让杆子保持直立。杆子保持直立的每个时间单位都会获得 1 的奖励。但是当杆子与垂直方向成 15 度以上的…

SQLynx荣登Web SQL工具榜首,中国软件快速崛起

近年来&#xff0c;随着互联网技术的迅猛发展&#xff0c;数据库管理工具也在不断进步和创新。 作为一种便捷且高效的数据库管理方式&#xff0c;Web SQL IDE工具逐渐成为开发者和数据库管理员的首选。在众多Web SQL工具中&#xff0c;SQLynx凭借其卓越的功能和用户体验&#x…

随便写写之——CSDN个人主页布局

最近一直在看题&#xff0c;真的好无聊&#xff0c;晚上睡觉前脑子里想的都是JS&#xff0c;不会是焦虑症犯了吧&#xff0c;赶紧写点东西&#xff0c;现在是上午9点38分&#xff0c;想着写个csdn的布局练练手吧。 现在是11点半&#xff0c;写个将近两个小时就写了那么点&#…

如何有效处理服务器后台密码暴露

服务器后台密码的暴露是信息安全领域中的严重事件&#xff0c;它可能引发未经授权的数据访问、恶意软件植入或系统功能滥用等一系列问题。本文将探讨几种处理服务器后台密码暴露的有效策略&#xff0c;包括紧急响应步骤、密码安全增强措施及长期预防机制&#xff0c;并提供实际…

开关电源RCD吸收电路解析与设计

开关电源RCD吸收电路解析与设计 引言 在电源设计中,RCD电路以其出色的能量吸收能力,有效降低电阻损耗,从而被广泛应用。然而,对于新手来说,理解和掌握开关电源中的RCD吸收电路可能是一个挑战。本文旨在深入剖析RCD吸收电路的设计原理和步骤,帮助读者更好地理解和应用这…

流媒体传输基本原理-RTSP

一、相关的基本概念 媒体&#xff1a;信息的载体 多媒体&#xff1a;多种媒体的组合体。 传媒&#xff1a;全称是“传播媒体”&#xff0c;媒体概念中偏重于传播方面的技术组织体系行业。 流媒体&#xff1a;流式地传输媒体&#xff0c;是传播媒体的一种技术&#xff0c;将媒体…