3***@qq.com
3***@qq.com
  • 发布:2019-12-25 10:41
  • 更新:2020-04-28 12:02
  • 阅读:2100

【报Bug】picker-view 设置value的问题

分类:uni-app

详细问题描述

js代码设置picker-view的value值,如果value下标为0的值是0是触发不了界面改变的,例如[0,2,2],反而大于0可以,例如[3,2,2],运行端是h5,小程序是没问题的

[内容]

重现步骤

[步骤]

以下是官方例子的pick-view代码,增加了button修改value的值,设置成[0,2,2],界面不会发生改变,设置成[3,2,2],界面是正确的。

<template>  
    <view>  
        <page-head :title="title"></page-head>  
        <view class="uni-padding-wrap">  
             <view class="uni-title">  
                   日期:{{year}}年{{month}}月{{day}}日  
             </view>  
    </view>  
        <picker-view v-if="visible" :indicator-style="indicatorStyle" :value="value" @change="bindChange">  
            <picker-view-column>  
                <view class="item" v-for="(item,index) in years" :key="index">{{item}}年</view>  
            </picker-view-column>  
            <picker-view-column>  
                <view class="item" v-for="(item,index) in months" :key="index">{{item}}月</view>  
            </picker-view-column>  
            <picker-view-column>  
                <view class="item" v-for="(item,index) in days" :key="index">{{item}}日</view>  
            </picker-view-column>  
        </picker-view>  
    <button @tap="changeDate">修改日期</button>  
    </view>  
</template>  

<script>  
    export default {  
        data () {  
            const date = new Date()  
            const years = []  
            const year = date.getFullYear()  
            const months = []  
            const month = date.getMonth() + 1  
            const days = []  
            const day = date.getDate()  

            for (let i = 1990; i <= date.getFullYear(); i++) {  
                years.push(i)  
            }  

            for (let i = 1; i <= 12; i++) {  
                months.push(i)  
            }  

            for (let i = 1; i <= 31; i++) {  
                days.push(i)  
            }  
            return {  
                title: 'picker-view',  
                years,  
                year,  
                months,  
                month,  
                days,  
                day,  
                value: [9999, month - 1, day - 1],  
                visible: true,  
                indicatorStyle: `height: ${Math.round(uni.getSystemInfoSync().screenWidth/(750/100))}px;`  
            }  
        },  
        methods: {  
            bindChange (e) {  
                const val = e.detail.value  
                this.year = this.years[val[0]]  
                this.month = this.months[val[1]]  
                this.day = this.days[val[2]]  
            },  
        changeDate(){  
         this.value=[0,2,2]//this.value=[3,2,2]  
        }  
        }  
    }  
</script>  

<style>   
    picker-view {  
        width: 100%;  
        height: 600upx;  
        margin-top:20upx;  
    }  

    .item {  
        line-height: 100upx;  
        text-align: center;  
    }  
</style>

[结果]

[期望]

改变value的为[0,2,2],第一项可以选中第一个

IDE运行环境说明

[IDE版本号] HBuilderX 2.4.6

[windows版本号] windows 10

uni-app运行环境说明

运行端是h5,小程序是没问题的

2019-12-25 10:41 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

我也有同样的问题,请问解决了吗

  • 3***@qq.com (作者)

    我过年前在github上提了问题,alpha分支是改好了,但是一直没有合并到master分支,你下载个alpha版试下

    2020-03-13 16:11

weiwin123

weiwin123 - 90后闷烧迷茫it男

app同样的问题,请问解决了吗???

该问题目前已经被锁定, 无法添加新回复