微信小程序使用 Vant Weapp 中 Collapse 折叠面板 的问题!

需求:结合Tab 标签页 和 Collapse 折叠面板 组合成显示课本和章节内容,并且用户体验要好点!

如下图展示:

问题:如何使用Collapse 折叠面板 将内容循环展示出来?

js中的数据是这样的

代码实现:

javascript 复制代码
<van-tabs animated sticky active="{{ active }}" title-active-color="#e54d42" line-height="10rpx"  tab-active-class="tab-item" ellipsis="{{false}}" bind:click="toBook">
  <van-tab wx:for="{{navLists}}" wx:key="nav" title="{{item.kb}}  {{item.title}}">
  <!--  -->
    <van-collapse value="{{ activeNames }}" bind:change="onChange" wx:for="{{ book }}" wx:key="b" wx:for-item='books' wx:for-index="bookindex">
      <!--  -->
      <van-collapse-item title="{{ books.name }}" name="{{ bookindex }}">
           <view wx:for="{{books.content}}" wx:key="c" wx:for-item="jie" wx:for-index="jieindex">
              <navigator url="" style="padding: 20rpx 0 20rpx 10rpx;">
                 <view style="display: flex;align-items: center;justify-content: space-between;padding-bottom: 10rpx;">
                    <view>{{jie.title}} <text> [ {{jie.complete}} / {{jie.num}} ] </text></view>
                    <van-icon name="arrow" />
                 </view>
                 <van-progress
                    percentage="{{jie.percent || 0}}"
                    pivot-text="{{jie.percent || 0}}%"
                    pivot-color="#0081ff"
                    stroke-width="12"
                    color="linear-gradient(to right, #be99ff, #0081ff)"
                  />
              </navigator>
           </view>
      </van-collapse-item>
    </van-collapse>
  </van-tab>
</van-tabs>

这里要注意的有:
1、value="{{ activeNames }}" 这里的activeNames仅仅表示点击那章的标号;
在js中,activeNames:[''];必修是数组形式!空表示都不展开。
2、循环的数据改变!也就是book数组重新赋值!

这里面还有一个问题如下:

javascript 复制代码
onChange(e) {
    //这里有一个很奇怪的问题,就是每次点击章的时候,会自动添加一项,这一项居然的index,但不知道为什么?
    this.setData({
      book:this.data.book,  //这里是选择哪本书之后,要赋予的该书的章节内容!
      activeNames:e.detail  //这里表示的是显示的哪一项
    })
  },

算了,解决就好!2024.04.19

相关推荐
打小就很皮...18 分钟前
HBuilder 发行Android(apk包)全流程指南
前端·javascript·微信小程序
集成显卡1 小时前
PlayWright | 初识微软出品的 WEB 应用自动化测试框架
前端·chrome·测试工具·microsoft·自动化·edge浏览器
前端小趴菜052 小时前
React - 组件通信
前端·react.js·前端框架
Amy_cx2 小时前
在表单输入框按回车页面刷新的问题
前端·elementui
dancing9993 小时前
cocos3.X的oops框架oops-plugin-excel-to-json改进兼容多表单导出功能
前端·javascript·typescript·游戏程序
后海 0_o3 小时前
2025前端微服务 - 无界 的实战应用
前端·微服务·架构
Scabbards_3 小时前
CPT304-2425-S2-Software Engineering II
前端
小满zs3 小时前
Zustand 第二章(状态处理)
前端·react.js
程序猿小D3 小时前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
萌萌哒草头将军3 小时前
🚀🚀🚀Prisma 发布无 Rust 引擎预览版,安装和使用更轻量;支持任何 ORM 连接引擎;支持自动备份...
前端·javascript·vue.js