• uni-app实现点击显示隐藏列表,兼容微信小程序


    效果: 

    1. <view class="list-item" v-for="(item,index1) in listData" :key="index1">
    2. <view class="item-title" @click="item.content.length>0?handleToggle(item,index1):''">
    3. <view class="">{{item.title}}view>
    4. <u-icon :name="item.isToggle ? 'arrow-right' : 'arrow-down'">u-icon>
    5. view>
    6. <view class="item-content" v-show="!item.isToggle">
    7. <view class="content-sel" v-for="(c,index2) in item.content" :key="index2">
    8. {{c.title}}
    9. view>
    10. view>
    11. view>

     

    1. listData:[
    2. {
    3. title:"新疆",
    4. isToggle:false,
    5. content:[
    6. {title:"新疆大明矿业1"},
    7. {title:"新疆大明矿业2"}
    8. ],
    9. },
    10. {
    11. title:"山东",
    12. isToggle:false,
    13. content:[
    14. {title:"山东矿业1"},
    15. {title:"山东矿业2"}
    16. ],
    17. }
    18. ],
    1. handleToggle(item,index1){
    2. item.isToggle = !item.isToggle;
    3. console.log(item.isToggle,"item.isToggle")
    4. }

    小程序打印的结果:值一直为true

     

    如果你试过v-if不生效,又试了v-show,还是不行!!千万不要着急!

    不是自己写的不对,而是uni-app和微信小程序修改值的方式不一致造成的。反正就是不承认是自己的问题。

    其实解决的办法也很简单,就是要兼容两端,写出符合让两端都适合的代码 。

    既然这样直接修改值不行,那就从根本出发。

    1. handleToggle(item,index1){
    2. // item.isToggle = !item.isToggle;
    3. this.listData.forEach((item,index)=>{
    4. if(index1 === index){
    5. item.isToggle = !item.isToggle;
    6. }
    7. })
    8. console.log(item,"item.isToggle")
    9. }

  • 相关阅读:
    LQ0222 买不到的数目【DP+数学】
    Java基础【理解版】
    学编程:Python入门考级必备[5]
    C++学习笔记---命名空间namespace
    大根堆的创建(视频讲解)
    【机器学习】Exam4
    半年总结-忙碌中的思考
    蓝队追踪者工具TrackAttacker,以及免杀马生成工具
    Mycat分库分表
    【C++】模板-非类型模板参数
  • 原文地址:https://blog.csdn.net/SmartJunTao/article/details/132582277