详细问题描述
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,小程序是没问题的
3***@qq.com (作者)
我过年前在github上提了问题,alpha分支是改好了,但是一直没有合并到master分支,你下载个alpha版试下
2020-03-13 16:11