y***@163.com
y***@163.com
  • 发布:2025-02-10 16:26
  • 更新:2025-02-10 17:14
  • 阅读:25

点击按钮无法收拢collapse-item

分类:uni-app

点击 ‘收拢全部’ 无效,可以展开,无法收拢代码如下:

<template>  
    <view>  
        <!-- 点击按钮控制展开和收拢 -->  
        <button @click="toggleAll">  
          {{ isAllExpanded ? '收拢全部' : '展开全部' }}  
        </button>  
        <!-- uni-collapse 组件 -->  
        <uni-collapse :value="activeNames" >  
          <!-- 第一个折叠项 -->  
          <uni-collapse-item title="折叠项 1" name="1">  
            <view>这是折叠项 1 的内容</view>  
          </uni-collapse-item>  
          <!-- 第二个折叠项 -->  
          <uni-collapse-item title="折叠项 2" name="2">  
            <view>这是折叠项 2 的内容</view>  
          </uni-collapse-item>  
          <!-- 第三个折叠项 -->  
          <uni-collapse-item title="折叠项 3" name="3">  
            <view>这是折叠项 3 的内容</view>  
          </uni-collapse-item>  
        </uni-collapse>  
      </view>  
</template>  

<script setup>  
import { ref } from 'vue';  
// 定义响应式变量 activeNames,用于存储当前展开的折叠项名称  
const activeNames = ref([]);  
// 定义响应式变量 isAllExpanded,用于标记是否全部展开  
const isAllExpanded = ref(false);  
// 点击按钮的处理函数  
const toggleAll = () => {  
  if (isAllExpanded.value) {  
    // 如果全部展开,则收拢全部  
    activeNames.value = [];  
  } else {  
    // 如果未全部展开,则展开全部  
    activeNames.value = ['1', '2', '3'];  
  }  
  // 切换展开状态标记  
  isAllExpanded.value = !isAllExpanded.value;  
};  
</script>
2025-02-10 16:26 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

默认的value/v-model只能激活 是没有收拢功能的 你要用open属性控制折叠项的展开和收拢

<template>  
    <view>  
        <!-- 点击按钮控制展开和收拢 -->  
        <button @click="toggleAll">  
            {{ isAllExpanded ? '收拢全部' : '展开全部' }}  
        </button>  
        <!-- uni-collapse 组件 -->  
        <uni-collapse v-model="activeNames">  
            <!-- 第一个折叠项 -->  
            <uni-collapse-item :open="activeNames.indexOf('1') !== -1" title="折叠项 1" name="1">  
                <view>这是折叠项 1 的内容</view>  
            </uni-collapse-item>  
            <!-- 第二个折叠项 -->  
            <uni-collapse-item :open="activeNames.indexOf('2') !== -1" title="折叠项 2" name="2">  
                <view>这是折叠项 2 的内容</view>  
            </uni-collapse-item>  
            <!-- 第三个折叠项 -->  
            <uni-collapse-item :open="activeNames.indexOf('3') !== -1" title="折叠项 3" name="3">  
                <view>这是折叠项 3 的内容</view>  
            </uni-collapse-item>  
        </uni-collapse>  
    </view>  
</template>  

<script setup>  
    import {  
        ref  
    } from 'vue'  
    // 定义响应式变量 activeNames,用于存储当前展开的折叠项名称    
    const activeNames = ref([]);  
    // 定义响应式变量 isAllExpanded,用于标记是否全部展开    
    const isAllExpanded = ref(false);  
    // 点击按钮的处理函数    
    const toggleAll = () => {  
        if (isAllExpanded.value) {  
            // 如果全部展开,则收拢全部    
            activeNames.value = [];  
        } else {  
            // 如果未全部展开,则展开全部    
            activeNames.value = ['1', '2', '3'];  
        }  
        // 切换展开状态标记    
        isAllExpanded.value = !isAllExpanded.value;  
    };  
</script>  

<style lang="scss">  

</style>
  • y***@163.com (作者)

    原来如此,感谢!

    2025-02-10 17:22

要回复问题请先登录注册