defaultIndex
处理是没有问题,但是二级的话我们还需要将values值指向当前二级数组之中去。
addressSlots: [ { flex: 1, values: Object.keys(address), className: 'slot1', textAlign: 'center' }, { divider: true, content: '-', className: 'slot2' }, { flex: 1, values: ['北京'], className: 'slot3', textAlign: 'center' } ]
避免在created之中单独为addressSlots
做数据处理,我们可以统一将一级和二级都指向默认的第一个参数,然后利用下面的方法做初始化处理:
mounted () { this.$nextTick(() => { setTimeout(() => { // 利用索引初始化默认选中的省份和城市 this.areaSlots[0].defaultIndex = provinceIndex // Number类型 this.areaSlots[2].defaultIndex = cityIndex }, 20) }) }
bug处理
Infinite scroll组件的加载多次问题
官方例子的方法在一次滚动后并不止加载一次,应该在loading之中屏蔽新的加载处理:
loadMore () { this.loading = true setTimeout(() => { // TODO this.loading = false }, 2500) }
进行改进:
loadMore () { // 防止多次加载 if (this.loading) { return false } this.loading = true setTimeout(() => { // TODO this.loading = false }, 2500) }
tabContainer和loadMore的滑动冲突处理
虽然这两个滑动一起使用的效果很蛋疼,但是如果tabContainer的高度值不能撑满整个屏幕的话,是无法在上下拉刷新的同时左右滑动的需要使用css进行高度处理才可以进行左右滑动:
.mint-tab-container-wrap{ min-height: 617px; // 需要设置最小高度 }
Datetime picker不能正常弹出的问题
不知道是不是只有我才遇到了这个问题,死活不发通过官方的方法显示出来。
无奈之下查看源码,发现只好手动控制picker的显示了。
我们需要添加一个popup包裹起来要用的datetime picker,然后利用computed属性通过popup的激活来为当前日期时间控件改变display属性。
这样就基本达到了想要的效果,实现代码如下:
html部分:
<mt-popup v-model="activePicker" position="bottom"> <mt-datetime-picker :style="{ display: showOrHide }" ref="picker" type="date" v-model="date" :start-date="new Date('2010-01-01')" @cancel="cancelPicker" @confirm="cancelPicker"></mt-datetime-picker> </mt-popup>
js部分:
computed: { showOrHide: function () { if (this.activePicker) { return 'block' } else { return 'none' } } }, methods: { cancelPicker () { this.activePicker = false } }
内容版权声明:除非注明,否则皆为本站原创文章。