1***@qq.com
1***@qq.com
  • 发布:2023-06-09 16:08
  • 更新:2023-06-09 16:08
  • 阅读:243

【报Bug】记录一个checkbox的bug,即使value的值为true,也不会显示为打钩的css。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.4

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: 小米

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<template>
<view>
<button @click="change_value">更换</button>
<checkbox-group @change="checkboxChange">
<view v-for="(item,index) in records" :key="index">
{{item.checked}}
<checkbox :value="String(item.id)" :checked="Boolean(item.checked)" />
</view>
</checkbox-group>
</view>
</template>

<script>
export default {
name: "",
data() {
return {
records:[{checked:false,id:1},{checked:false,id:2},{checked:false,id:3},{checked:false,id:4},{checked:false,id:5}],
sure:[]
}
},
methods:{
change_value(){
this.records=this.sure
},
checkboxChange(e){
var values = e.detail.value
var records=this.records
var sure=this.sure
console.log(values)
records.forEach((k,j)=>{

            if(values.indexOf(String(k.id))!=-1){  

                records[j].checked=true  

                let flag=0  
                sure.forEach((k2,j2)=>{  
                    if(k2.id==k.id){  
                        flag=1  
                    }  
                })  
                if(flag==0){  
                    sure.push(k)  
                }  

                console.log(sure)  

            }else{  
                records[j].checked=false  
                sure.forEach((k2,j2)=>{  
                    if(values.indexOf(String(k2.id))==-1){  

                        sure.splice(j2,1)  
                    }  
                })  
            }  
        })  
        console.log(sure)  
        this.sure=sure  
        this.records=records  

    }  
}  

}
</script>

<style lang="scss" scoped>

</style>

操作步骤:

当时的步骤是删除数组的里面的第一个元素,但是第二个元素的value值虽然是true,但是在checkbox渲染的过程中,并没有变成勾的形式,说明当时并没有渲染到位。

预期结果:

当删除数组的第一个元素的时候,第二个元素应该是带勾的。

实际结果:

不带勾,依然是空白,即使value的值是true,但是显示出来为空白。

bug描述:

折磨一天了的bug,这个bug是checkbox渲染不及时导致,当我吧checkbox里面的 :checked="Boolean(item.checked)" checked变成true的时候,该节点并没有及时刷新成勾,不知道是不是系统里面设置了v-if导致渲染不及时。

2023-06-09 16:08 负责人:无 分享
已邀请:

要回复问题请先登录注册