uni-app uni-collapse不能折叠吗

uni-app uni-collapse不能折叠吗

问题描述

比如

<uni-collapse v-model="isOpen">

在某个按钮中设置 isOpen = ["0"] 可以正常展开折叠面板,但设置 siOpen = Null[] 并不会触发折叠,怎么回事。

29 回复

uni-collapse 1.4.7 版本已修复此问题,可升级到此版本

更多关于uni-app uni-collapse不能折叠吗的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-collapse 第81行
if (arr) {
val.forEach(v => {
if (v === vm.nameSync) {
if (this.accordion) {
console.warn(‘accordion 属性为 true ,v-model 类型应该为 string’)
return
}
vm.isOpen = true
}
})
} 这里需要修改一下 if (arr) {
if (val.find(v => v === vm.nameSync)) {
vm.isOpen = true
} else {
vm.isOpen = false
}
}

你的 uni-collapse 插件版本是多少?哪个端出现了这个问题

最新版本。这里有明显的BUG,v-model如果是Array, 比如v-model="[‘0’,‘1’]", 可以将这两个展开。之后设置成v-model="[]", 这展开的两个就不能收缩了。

回复 w***@163.com: 哪个端?

回复 DCloud_UNI_JBB: 至少APP端是这个表现

回复 w***@163.com: 1.4.5 版本,我测试,app,小程序,web都没问题了

回复 DCloud_UNI_JBB: 哦,是的。我的是两个月前的最新版,我看了一下是1.4.4

回复 w***@163.com: 可以升级到1.4.5

升级到 1.4.6 了,还是不好使,并且我在 data 中声明一个 collapseArray: [],我用一个按钮事件点击的时候 this.collapseArray.push(‘key1’) 直接就报错了:this.collapseArray.push is not a function,data 中明确指定类型是空数组了;

发一下你的代码

回复 DCloud_UNI_JBB:

<template> <view> <uni-collapse ref="collapse" v-model="collapseArray"> <uni-collapse-item name="key1" title="默认开启"> <text>折叠内容</text> </uni-collapse-item> </uni-collapse> <view [@click](/user/click)="updateCollapse">更新折叠状态</view> </view> </template>
<script> export default { data() { return { collapseArray: [] } }, methods: { updateCollapse() { if (this.collapseArray.length > 0) { this.collapseArray.splice(0, 1) } else { this.collapseArray.push('key1') } } } } </script>
<style> </style>

回复 1***@qq.com: 我这里在web平台测试并没有复现报错,功能确实有问题,方便发一下你的报错吗?

回复 DCloud_UNI_JBB: 值更新页面没效果的问题我修复了,可升级到 1.4.7

回复 DCloud_UNI_JBB: 第一点击更新折叠状态就会报错: Error in v-on handler: “TypeError: this.collapseArray.push is not a function”

回复 DCloud_UNI_JBB: 好的,我等下试试

回复 1***@qq.com: 什么端,方便在im中发个截图吗?我测试并没有发现这个报错

回复 DCloud_UNI_JBB: h5,就正常运行到 Chrome

回复 1***@qq.com: 1.4.6版本,你上面的我测试并没有任何报错

你运行起来,点下更新折叠状态按钮,我运行起来一点就报图片上的错;

我运行起来没报错

运行起来,点击 更新折叠状态

回复 1***@qq.com: 点了也没报错

回复 DCloud_UNI_JBB: 这个跟运行环境有关系吗,我这是 Mac,HBuilder X 4,76,uni-collapse 1.47

回复 1***@qq.com: 没关系,你试试其他端呢

在uni-app中,uni-collapse组件的v-model绑定的是当前展开的面板标识数组。当设置为[]空数组时,表示所有面板都应折叠。如果未能折叠,可能是以下原因:

  1. 数据响应性问题:确保isOpen是响应式数据(如在data中声明,或使用ref/reactive)
  2. 标识匹配问题:检查每个uni-collapse-item的name属性是否与数组中的值对应
  3. 版本兼容性:某些旧版本可能存在bug,建议升级到最新版本

正确用法示例:

data() {
  return {
    isOpen: [] // 初始状态全部折叠
  }
}

通过按钮控制时,直接赋值新数组即可:

this.isOpen = [] // 折叠所有
this.isOpen = ['0'] // 展开name为0的面板
回到顶部